QGraphicsSvgItem Class
QGraphicsSvgItemクラスは、SVGファイルの内容をレンダリングするために使用できるQGraphicsItem 。詳細...
ヘッダー | #include <QGraphicsSvgItem> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS SvgWidgets) target_link_libraries(mytarget PRIVATE Qt6::SvgWidgets) |
qmake: | QT += svgwidgets |
継承: | QGraphicsObject |
プロパティ
- elementId : QString
- maximumCacheSize : QSize
パブリック関数
QGraphicsSvgItem(QGraphicsItem *parent = nullptr) | |
QGraphicsSvgItem(const QString &fileName, QGraphicsItem *parent = nullptr) | |
QString | elementId() const |
QSize | maximumCacheSize() const |
QSvgRenderer * | renderer() const |
void | setElementId(const QString &id) |
void | setMaximumCacheSize(const QSize &size) |
void | setSharedRenderer(QSvgRenderer *renderer) |
再実装パブリック関数
virtual QRectF | boundingRect() const override |
virtual void | paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override |
virtual int | type() const override |
詳しい説明
QGraphicsSvgItem は SVG ファイルをQGraphicsView にレンダリングする方法を提供する。QGraphicsSvgItem は、そのコンストラクタにレンダリングする SVG ファイルを渡すか、共有QSvgRenderer を明示的に設定することによって作成することができる。
QGraphicsSvgItem にQSvgRenderer を設定しても、そのアイテムがレンダラーの所有権を持つわけではないので、setSharedRenderer() メソッドを使用する場合は、QSvgRenderer オブジェクトの寿命が少なくとも QGraphicsSvgItem の寿命と同じくらいになるようにしなければならない。
QGraphicsSvgItem はsetElementId を介して SVG ファイルの一部だけをレンダリングする方法を提供する。setElementId() メソッドを呼び出すと、渡された id を持つ SVG 要素(とその子)だけがレンダリングされる。これは、多数の個別の要素を含む大きな SVG ファイルを選択的にレンダリングする便利な方法を提供する。例えば、次のコードはカードデッキ全体を含む SVG ファイルからジョーカーだけをレンダリングする:
QSvgRenderer *renderer = new QSvgRenderer(QLatin1String("SvgCardDeck.svg")); QGraphicsSvgItem *black = new QGraphicsSvgItem(); QGraphicsSvgItem *red = new QGraphicsSvgItem(); black->setSharedRenderer(renderer); black->setElementId(QLatin1String("black_joker")); red->setSharedRenderer(renderer); red->setElementId(QLatin1String("red_joker"));
アイテムのサイズは、アイテムの変換行列を直接操作することで設定できる。
デフォルトでは、アイテムの表示を高速化するために、QGraphicsItem::DeviceCoordinateCache モードを使用して SVG レンダリングがキャッシュされる。QGraphicsItem::setCacheMode() メソッドにQGraphicsItem::NoCache を渡すことで、キャッシュを無効にすることができる。
QSvgWidgetも参照してください 、 Qt SVG C++ ClassesQGraphicsItem およびQGraphicsView も参照。
プロパティ・ドキュメント
elementId : QString
このプロパティは要素の XML ID を保持する。
アクセス関数:
QString | elementId() const |
void | setElementId(const QString &id) |
maximumCacheSize : QSize
このプロパティは、この項目のデバイス座標キャッシュの最大サイズを保持する。
アクセス関数:
QSize | maximumCacheSize() const |
void | setMaximumCacheSize(const QSize &size) |
メンバ関数説明
QGraphicsSvgItem::QGraphicsSvgItem(QGraphicsItem *parent = nullptr)
与えられたparent で新しい SVG アイテムを構築する。
QGraphicsSvgItem::QGraphicsSvgItem(const QString &fileName, QGraphicsItem *parent = nullptr)
与えられたparent で新しい項目を構築し、指定されたfileName で SVG ファイルの内容を読み込みます。
[override virtual]
QRectF QGraphicsSvgItem::boundingRect() const
再実装:QGraphicsItem::boundingRect() const.
このアイテムの外接矩形を返します。
QString QGraphicsSvgItem::elementId() const
現在レンダリング中の要素のXML IDを返す。ファイル全体がレンダリングされている場合は空文字列を返します。
注: プロパティ elementId のゲッター関数です。
setElementId()も参照してください 。
QSize QGraphicsSvgItem::maximumCacheSize() const
この項目のデバイス座標キャッシュの現在の最大サイズを返します。アイテムがQGraphicsItem::DeviceCoordinateCache モードを使用してキャッシュされている場合、デバイス座標でのアイテムの拡張が最大サイズより大きければ、キャッシュはバイパスされます。
デフォルトの最大キャッシュ・サイズは 1024x768 です。QPixmapCache::cacheLimit() はキャッシュ全体の累積境界を示し、maximumCacheSize() はこの特定のアイテムの最大キャッシュ・サイズを示します。
注釈 プロパティ maxCacheSize のゲッター関数です。
setMaximumCacheSize() およびQGraphicsItem::cacheMode()も参照して ください。
[override virtual]
void QGraphicsSvgItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr)
再実装:QGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)。
QSvgRenderer *QGraphicsSvgItem::renderer() const
現在使用しているQSvgRenderer を返します。
void QGraphicsSvgItem::setElementId(const QString &id)
要素の XML ID をid に設定する。
注: プロパティのセッター関数elementId 。
elementId()も参照してください 。
void QGraphicsSvgItem::setMaximumCacheSize(const QSize &size)
アイテムの最大デバイス座標キャッシュサイズをsize に設定します。アイテムがQGraphicsItem::DeviceCoordinateCache モードを使用してキャッシュされている場合、デバイス座標でのアイテムの拡張がsize より大きければ、キャッシュはバイパスされます。
キャッシュは、レンダリング結果のキャッシュに使用されるQPixmap に対応する。キャッシュ全体の制限を設定するにはQPixmapCache::setCacheLimit() を使用し、個々のアイテムのキャッシュサイズを設定するには setMaximumCacheSize() を使用します。
注: プロパティmaximumCacheSize のセッター関数。
maximumCacheSize() およびQGraphicsItem::cacheMode()も参照して ください。
void QGraphicsSvgItem::setSharedRenderer(QSvgRenderer *renderer)
アイテムの共有QSvgRenderer としてrenderer を設定する。このメソッドを使うことで、いくつものアイテムで同じQSvgRenderer を共有することができる。これは SVG ファイルが一度だけ解析されることを意味する。このメソッドに渡されるQSvgRenderer はこのアイテムが使われる限り存在しなければならない。
[override virtual]
int QGraphicsSvgItem::type() const
再実装:QGraphicsItem::type() const.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.