QProxyStyle Class
QProxyStyle クラスは、QStyle 要素の動的なオーバーライドを簡素化する便利なクラスです。詳細...
ヘッダー | #include <QProxyStyle> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
継承: | QCommonStyle |
パブリック関数
QProxyStyle(QStyle *style = nullptr) | |
QProxyStyle(const QString &key) | |
virtual | ~QProxyStyle() |
QStyle * | baseStyle() const |
void | setBaseStyle(QStyle *style) |
再実装パブリック関数
virtual void | drawComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = nullptr) const override |
virtual void | drawControl(QStyle::ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const override |
virtual void | drawItemPixmap(QPainter *painter, const QRect &rect, int alignment, const QPixmap &pixmap) const override |
virtual void | drawItemText(QPainter *painter, const QRect &rect, int flags, const QPalette &pal, bool enabled, const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const override |
virtual void | drawPrimitive(QStyle::PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const override |
virtual QPixmap | generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *opt) const override |
virtual QStyle::SubControl | hitTestComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, const QPoint &pos, const QWidget *widget = nullptr) const override |
virtual QRect | itemPixmapRect(const QRect &r, int flags, const QPixmap &pixmap) const override |
virtual QRect | itemTextRect(const QFontMetrics &fm, const QRect &r, int flags, bool enabled, const QString &text) const override |
virtual int | layoutSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2, Qt::Orientation orientation, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const override |
virtual int | pixelMetric(QStyle::PixelMetric metric, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const override |
virtual void | polish(QApplication *app) override |
virtual void | polish(QPalette &pal) override |
virtual void | polish(QWidget *widget) override |
virtual QSize | sizeFromContents(QStyle::ContentsType type, const QStyleOption *option, const QSize &size, const QWidget *widget) const override |
virtual QIcon | standardIcon(QStyle::StandardPixmap standardIcon, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const override |
virtual QPalette | standardPalette() const override |
virtual QPixmap | standardPixmap(QStyle::StandardPixmap standardPixmap, const QStyleOption *opt, const QWidget *widget = nullptr) const override |
virtual int | styleHint(QStyle::StyleHint hint, const QStyleOption *option = nullptr, const QWidget *widget = nullptr, QStyleHintReturn *returnData = nullptr) const override |
virtual QRect | subControlRect(QStyle::ComplexControl cc, const QStyleOptionComplex *option, QStyle::SubControl sc, const QWidget *widget) const override |
virtual QRect | subElementRect(QStyle::SubElement element, const QStyleOption *option, const QWidget *widget) const override |
virtual void | unpolish(QApplication *app) override |
virtual void | unpolish(QWidget *widget) override |
再実装された保護された関数
virtual bool | event(QEvent *e) override |
詳細説明
QProxyStyle は、ペイントやその他の特定のスタイル動作を動的にオーバーライドする目的で、QStyle (通常はデフォルトのシステムスタイル)をラップします。
次の例では、どのプラットフォームでもショートカットの下線の動作をオーバーライドする方法を示します:
#include "textedit.h" #include <QApplication> #include <QProxyStyle> class MyProxyStyle : public QProxyStyle { public: int styleHint(StyleHint hint, const QStyleOption *option = nullptr, const QWidget *widget = nullptr, QStyleHintReturn *returnData = nullptr) const override { if (hint == QStyle::SH_UnderlineShortcut) return 0; return QProxyStyle::styleHint(hint, option, widget, returnData); } }; int main(int argc, char **argv) { Q_INIT_RESOURCE(textedit); QApplication a(argc, argv); a.setStyle(new MyProxyStyle); TextEdit mw; mw.resize(700, 800); mw.show(); //... }
警告:警告: Qt が提供するcommon styles はQStyle::proxy() を呼び出すため、このヒントを尊重しますが、ユーザー定義スタイルやシステム制御スタイルに対してQStyle::proxy() が呼び出される保証はありません。例えば、メニューがオペレーティング・システムによって処理されるMacでは動作しないでしょう。
特定のウィジェットのみにプロキシ・スタイルを設定する場合は、QWidget::style ()によって返されるグローバル・アプリケーション・スタイルにプロキシを設定しないようにする必要があります。のように、ウィジェット用に個別のカスタム・スタイルを作成する必要があります:
... auto proxy = new MyProxyStyle(QApplication::style()->name()); proxy->setParent(widget); // take ownership to avoid memleak widget->setStyle(proxy); ...
QStyleも参照して ください。
メンバ関数ドキュメント
QProxyStyle::QProxyStyle(QStyle *style = nullptr)
指定されたstyle 、またはstyle が指定されていない場合はデフォルトのネイティブstyle の動作をオーバーライドするための QProxyStyle オブジェクトを構築します。
style の所有権は QProxyStyle に移譲されます。
QProxyStyle::QProxyStyle(const QString &key)
stylekey で指定された基本スタイル、または指定されたスタイルkey が認識されない場合は現在のapplication style の動作をオーバーライドするための QProxyStyle オブジェクトを構築します。
QStyleFactory::create()も参照してください 。
[virtual noexcept]
QProxyStyle::~QProxyStyle()
QProxyStyle オブジェクトを破棄する。
QStyle *QProxyStyle::baseStyle() const
プロキシのベース スタイル オブジェクトを返します。プロキシ スタイルにベース スタイルが設定されていない場合、QProxyStyle 、代わりにアプリケーション スタイルのインスタンスが作成されます。
setBaseStyle() およびQStyleも参照してください 。
[override virtual]
void QProxyStyle::drawComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = nullptr) const
再実装:QCommonStyle::drawComplexControl(QStyle::ComplexControl cc, const QStyleOptionComplex *opt, QPainter *p, const QWidget *widget) const.
[override virtual]
void QProxyStyle::drawControl(QStyle::ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const
再実装:QCommonStyle::drawControl(QStyle::ControlElement element, const QStyleOption *opt, QPainter *p, const QWidget *widget) const.
[override virtual]
void QProxyStyle::drawItemPixmap(QPainter *painter, const QRect &rect, int alignment, const QPixmap &pixmap) const
再実装:QStyle::drawItemPixmap(QPainter *painter, const QRect &rectangle, int alignment, const QPixmap &pixmap) const.
[override virtual]
void QProxyStyle::drawItemText(QPainter *painter, const QRect &rect, int flags, const QPalette &pal, bool enabled, const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const
再実装:QStyle::drawItemText(QPainter *painter, const QRect &rectangle, int alignment, const QPalette &palette, bool enabled, const QString &text, QPalette::ColorRole textRole) const.
[override virtual]
void QProxyStyle::drawPrimitive(QStyle::PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const
再実装:QCommonStyle::drawPrimitive(QStyle::PrimitiveElement pe, const QStyleOption *opt, QPainter *p, const QWidget *widget) const.
[override virtual protected]
bool QProxyStyle::event(QEvent *e)
再インプリメント:QObject::event(QEvent *e).
[override virtual]
QPixmap QProxyStyle::generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *opt) const
再実装:QCommonStyle::generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *opt) const.
[override virtual]
QStyle::SubControl QProxyStyle::hitTestComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, const QPoint &pos, const QWidget *widget = nullptr) const
再実装:QCommonStyle::hitTestComplexControl(QStyle::ComplexControl cc, const QStyleOptionComplex *opt, const QPoint &pt, const QWidget *widget) const.
[override virtual]
QRect QProxyStyle::itemPixmapRect(const QRect &r, int flags, const QPixmap &pixmap) const
再実装:QStyle::itemPixmapRect(const QRect &rectangle, int alignment, const QPixmap &pixmap) const.
[override virtual]
QRect QProxyStyle::itemTextRect(const QFontMetrics &fm, const QRect &r, int flags, bool enabled, const QString &text) const
再実装:QStyle::itemTextRect(const QFontMetrics &metrics, const QRect &rectangle, int alignment, bool enabled, const QString &text) const.
[override virtual]
int QProxyStyle::layoutSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2, Qt::Orientation orientation, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const
再実装:QCommonStyle::layoutSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2, Qt::Orientation orientation, const QStyleOption *option, const QWidget *widget) const.
このスロットは layoutSpacing() によって呼び出され、レイアウト内でcontrol1 とcontrol2 の間に使用されるべき間隔を決定します。orientation は、コントロールを横に並べるか、縦に重ねるかを指定します。option パラメータは、親ウィジェットに関する追加情報を渡すために使用できます。widget パラメータはオプションで、option がnullptr
の場合にも使用できます。
デフォルトの実装は -1 を返します。
combinedLayoutSpacing()も参照してください 。
[override virtual]
int QProxyStyle::pixelMetric(QStyle::PixelMetric metric, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const
再実装:QCommonStyle::pixelMetric(QStyle::PixelMetric m, const QStyleOption *opt, const QWidget *widget) const.
[override virtual]
void QProxyStyle::polish(QApplication *app)
再実装:QCommonStyle::polish(QApplication *app).
[override virtual]
void QProxyStyle::polish(QPalette &pal)
再実装:QCommonStyle::polish(QPalette &pal).
[override virtual]
void QProxyStyle::polish(QWidget *widget)
再インプリメント:QCommonStyle::polish(QWidget *widget).
void QProxyStyle::setBaseStyle(QStyle *style)
プロキシされるべき基本スタイルを設定する。
style の所有権はQProxyStyle に移譲される。
style がnullptr
の場合、デスクトップ依存のスタイルが自動的に割り当てられます。
baseStyle()も参照してください 。
[override virtual]
QSize QProxyStyle::sizeFromContents(QStyle::ContentsType type, const QStyleOption *option, const QSize &size, const QWidget *widget) const
再実装:QCommonStyle::sizeFromContents(QStyle::ContentsType contentsType, const QStyleOption *opt, const QSize &contentsSize, const QWidget *widget) const.
[override virtual]
QIcon QProxyStyle::standardIcon(QStyle::StandardPixmap standardIcon, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const
再実装:QStyle::standardIcon(QStyle::StandardPixmap standardIcon, const QStyleOption *option, const QWidget *widget) const.
与えられたstandardIcon のアイコンを返します。
QStyle のサブクラスで独自のアイコンを提供するために、このスロットを再実装します。option 引数を使用して、適切なアイコンを見つけるために必要な追加情報を渡すことができます。widget 引数はオプションで、アイコンの検索に使用することもできます。
[override virtual]
QPalette QProxyStyle::standardPalette() const
再実装:QStyle::standardPalette() const.
[override virtual]
QPixmap QProxyStyle::standardPixmap(QStyle::StandardPixmap standardPixmap, const QStyleOption *opt, const QWidget *widget = nullptr) const
再実装:QCommonStyle::standardPixmap(QStyle::StandardPixmap sp, const QStyleOption *option, const QWidget *widget) const.
[override virtual]
int QProxyStyle::styleHint(QStyle::StyleHint hint, const QStyleOption *option = nullptr, const QWidget *widget = nullptr, QStyleHintReturn *returnData = nullptr) const
再実装:QCommonStyle::styleHint(QStyle::StyleHint sh, const QStyleOption *opt, const QWidget *widget, QStyleHintReturn *hret) const.
[override virtual]
QRect QProxyStyle::subControlRect(QStyle::ComplexControl cc, const QStyleOptionComplex *option, QStyle::SubControl sc, const QWidget *widget) const
再実装:QCommonStyle::subControlRect(QStyle::ComplexControl cc, const QStyleOptionComplex *opt, QStyle::SubControl sc, const QWidget *widget) const.
[override virtual]
QRect QProxyStyle::subElementRect(QStyle::SubElement element, const QStyleOption *option, const QWidget *widget) const
再実装:QCommonStyle::subElementRect(QStyle::SubElement sr, const QStyleOption *opt, const QWidget *widget) const.
[override virtual]
void QProxyStyle::unpolish(QApplication *app)
再実装:QCommonStyle::unpolish(QApplication *application).
[override virtual]
void QProxyStyle::unpolish(QWidget *widget)
再インプリメント:QCommonStyle::unpolish(QWidget *widget).
© 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.