QIconEngine Class

QIconEngine クラスは、QIcon レンダラー用の抽象基底クラスを提供します。詳細...

ヘッダー #include <QIconEngine>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui

パブリック・タイプ

struct ScaledPixmapArgument
enum IconEngineHook { IsNullHook, ScaledPixmapHook }

パブリック関数

QIconEngine()
virtual ~QIconEngine()
virtual QSize actualSize(const QSize &size, QIcon::Mode mode, QIcon::State state)
virtual void addFile(const QString &fileName, const QSize &size, QIcon::Mode mode, QIcon::State state)
virtual void addPixmap(const QPixmap &pixmap, QIcon::Mode mode, QIcon::State state)
virtual QList<QSize> availableSizes(QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::Off)
virtual QIconEngine *clone() const = 0
virtual QString iconName()
virtual bool isNull()
virtual QString key() const
virtual void paint(QPainter *painter, const QRect &rect, QIcon::Mode mode, QIcon::State state) = 0
virtual QPixmap pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state)
virtual bool read(QDataStream &in)
virtual QPixmap scaledPixmap(const QSize &size, QIcon::Mode mode, QIcon::State state, qreal scale)
virtual void virtual_hook(int id, void *data)
virtual bool write(QDataStream &out) const

詳細説明

アイコンエンジンは、QIcon のレンダリング関数を提供します。各アイコンは、要求されたサイズ、モード、および状態でアイコンを描画する責任を負う、対応するアイコンエンジンを持っています。

アイコンはpaint() 関数で描画され、さらにpixmap() 関数で pixmap として取得できます (デフォルトの実装では、単にpaint() を使用しています)。addPixmap ()関数は、アイコンエンジンに新しい pixmap を追加するために使用でき、QIcon は、特殊なカスタム pixmap を追加するために使用します。

paint ()、pixmap ()、addPixmap ()関数はすべて仮想関数であるため、QIconEngine のサブクラスで再実装できます。

QIconEnginePluginも参照してください

メンバ型ドキュメント

enum QIconEngine::IconEngineHook

これらの列挙値はvirtual_hook() で使用され、バイナリの互換性を壊すことなくアイコンエンジンへの追加クエリを可能にします。

定数説明
QIconEngine::IsNullHook3このエンジンが NULL アイコンを表すかどうかを問い合わせることを許可する。virtual_hook() のdata 引数は、アイコンが null の場合に true に設定できる bool へのポインタです。この enum 値は Qt 5.7 で追加されました。
QIconEngine::ScaledPixmapHook4与えられたスケール(通常はデバイスのピクセル比に等しい)に従ってスケーリングされた pixmap を取得する方法を提供します。virtual_hook() 関数のdata 引数は、入力引数と出力引数の両方を含むScaledPixmapArgument ポインタです。この列挙値は Qt 5.9 で追加されました。

virtual_hook()も参照してください

メンバ関数ドキュメント

QIconEngine::QIconEngine()

アイコンエンジンを構築する。

[virtual noexcept] QIconEngine::~QIconEngine()

アイコンエンジンを破壊する。

[virtual] QSize QIconEngine::actualSize(const QSize &size, QIcon::Mode mode, QIcon::State state)

要求 さ れたsizemodestate に対 し て、 エン ジ ンが提供す る ア イ コ ンの実際のサ イ ズを返 し ます。デフ ォル ト の実装は、 与えられたsize を返 し ます。

返 さ れ る サ イ ズはデバ イ ス独立の ピ ク セル単位です (こ れは高 dpi の ピ ク ス マ ッ プに関連 し ます)。

[virtual] void QIconEngine::addFile(const QString &fileName, const QSize &size, QIcon::Mode mode, QIcon::State state)

QIcon::addFile() から呼び出される。与えられたfileNamesizemodestate のファイルから特殊化された pixmap を追加します。デフ ォル ト の pixmap ベース のエン ジ ンは、 与え ら れた フ ァ イ ル名をすべて格納 し 、 pixmap のサ イ ズが要求 さ れた ア イ コ ンのサ イ ズ と 一致す る と き は、 拡縮 さ れた pixmap を用い る のではな く 、 オンデマンドで pixmap を読み込みます。スケーラブルなベクター形式を実装するカスタムアイコンエンジンは、余分なファイルを無視することができます。

[virtual] void QIconEngine::addPixmap(const QPixmap &pixmap, QIcon::Mode mode, QIcon::State state)

QIcon::addPixmap()によって呼び出される。与えられたmodestate に特化したpixmap を追加します。デフ ォル ト の pixmap ベース のエン ジ ンは、 与え ら れた pixmap をすべて格納 し 、 pixmap のサ イ ズが要求 さ れた ア イ コ ンのサ イ ズ と 一致す る と き は、 拡縮 さ れた pixmap のかわ り にそれを用い ます。スケーラブルなベクター形式を実装するカスタムアイコンエンジンは、余分なpixmapを自由に無視できます。

[virtual] QList<QSize> QIconEngine::availableSizes(QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::Off)

特定のmodestate のエンジンに含まれるすべての画像のサイズを返します。

[pure virtual] QIconEngine *QIconEngine::clone() const

このメソッドを再実装して、このアイコンエンジンのクローンを返します。

[virtual] QString QIconEngine::iconName()

エンジンの作成に使用された名前があれば、それを返します。

[virtual] bool QIconEngine::isNull()

このアイコンエンジンが nullQIcon を表す場合に true を返す。

注意: アイコンエンジンがこの関数を再実装していない場合、実際の処理はvirtual_hook() メソッドで行われます。そのため、このメソッドはアイコンエンジンのサポートに依存し、すべてのアイコンエンジンで動作するとは限りません。

[virtual] QString QIconEngine::key() const

このアイコンエンジンを識別するキーを返します。

[pure virtual] void QIconEngine::paint(QPainter *painter, const QRect &rect, QIcon::Mode mode, QIcon::State state)

与えられたpainter を使って、必要なmodestate を持つアイコンを矩形rect に描く。

[virtual] QPixmap QIconEngine::pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state)

必要なsizemodestate を持つ pixmap としてアイコンを返します。デフォルトの実装では、新しい pixmap を作成し、それを埋めるためにpaint() を呼び出します。

[virtual] bool QIconEngine::read(QDataStream &in)

QDataStream in からアイコンエンジンのコンテンツを読み込む。コンテンツが読み込まれた場合はtrueを返し、そうでない場合はfalse を返す。

QIconEngineデフォルトの実装では、常に false を返します。

[virtual] QPixmap QIconEngine::scaledPixmap(const QSize &size, QIcon::Mode mode, QIcon::State state, qreal scale)

与えられたsize,mode,state,scale の pixmap を返す。

引数scale は通常、ディスプレイのデバイスピクセル比に等しい。サ イ ズはデバ イ ス独立の ピ ク セル単位で与え ら れます。

注意 : アイコンエンジンがこの関数を再実装していない場合、実際の処理はvirtual_hook() メソッドで行われるため、このメソッドはアイコンエンジンのサポートに依存し、すべてのアイコンエンジンで動作するとは限りません。

注意: エンジンによってはscale を整数にキャストする場合があります。

ScaledPixmapArgumentも参照

[virtual] void QIconEngine::virtual_hook(int id, void *data)

新しい仮想メソッドを追加することなく(そしてバイナリの互換性を壊すことなく)QIconEngine を拡張できるようにするための追加メソッド。data の実際の動作と書式はid の引数に依存し、これは実際にはIconEngineHook enum の定数である。

IconEngineHookも参照して ください。

[virtual] bool QIconEngine::write(QDataStream &out) const

このエンジンのコンテンツをQDataStream out に書き込む。コンテンツが書き込まれた場合はtrue を返し、そうでない場合はfalse を返す。

QIconEngineデフォルトの実装では、常に false を返します。

© 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.