QProxyStyle Class
La classe QProxyStyle est une classe de commodité qui simplifie le remplacement dynamique des éléments QStyle. Plus...
| En-tête : | #include <QProxyStyle> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Widgets)target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake : | QT += widgets |
| Héritages : | QCommonStyle |
Fonctions publiques
| QProxyStyle(QStyle *style = nullptr) | |
| QProxyStyle(const QString &key) | |
| virtual | ~QProxyStyle() |
| QStyle * | baseStyle() const |
| void | setBaseStyle(QStyle *style) |
Fonctions publiques réimplémentées
| 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 |
Fonctions protégées réimplémentées
| virtual bool | event(QEvent *e) override |
Description détaillée
Un QProxyStyle enveloppe un QStyle (généralement le style système par défaut) dans le but de surcharger dynamiquement la peinture ou d'autres comportements de style spécifiques.
L'exemple suivant montre comment remplacer le comportement du raccourci souligné sur n'importe quelle plate-forme :
#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(); //... }
Attention : Les common styles fournis par Qt respecteront ce conseil, car ils appellent QStyle::proxy(), mais il n'y a aucune garantie que QStyle::proxy() sera appelé pour les styles définis par l'utilisateur ou contrôlés par le système. Cela ne fonctionnerait pas sur un Mac, par exemple, où les menus sont gérés par le système d'exploitation.
Lorsqu'un style proxy doit être défini sur un widget spécifique uniquement, vous devez vous assurer de ne pas définir le proxy sur le style global de l'application qui est renvoyé par QWidget::style(). Vous devez créer un style personnalisé distinct pour le widget, comme dans l'exemple suivant :
... auto proxy = new MyProxyStyle(QApplication::style()->name()); proxy->setParent(widget); // take ownership to avoid memleak widget->setStyle(proxy); ...
Voir aussi QStyle.
Documentation des fonctions membres
QProxyStyle::QProxyStyle(QStyle *style = nullptr)
Construit un objet QProxyStyle pour remplacer le comportement dans le site style spécifié, ou dans le site natif par défaut style si style n'est pas spécifié.
La propriété de style est transférée à QProxyStyle.
QProxyStyle::QProxyStyle(const QString &key)
Construit un objet QProxyStyle pour remplacer le comportement du style de base spécifié par le style key, ou du style courant application style si le style spécifié key n'est pas reconnu.
Voir aussi QStyleFactory::create().
[virtual noexcept] QProxyStyle::~QProxyStyle()
Détruit l'objet QProxyStyle.
QStyle *QProxyStyle::baseStyle() const
Renvoie l'objet de style de base du proxy. Si aucun style de base n'est défini pour le style proxy, QProxyStyle créera une instance du style d'application à la place.
Voir aussi setBaseStyle() et QStyle.
[override virtual] void QProxyStyle::drawComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = nullptr) const
Réimplémente : 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
Réimplémente : QCommonStyle::drawControl(QStyle::ControlElement element 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
Réimplémente : 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
Réimplémente : 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
Réimplémente : QCommonStyle::drawPrimitive(QStyle::PrimitiveElement pe, const QStyleOption *opt, QPainter *p, const QWidget *widget) const.
[override virtual protected] bool QProxyStyle::event(QEvent *e)
Réimplémente : QObject::event(QEvent *e).
[override virtual] QPixmap QProxyStyle::generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *opt) const
Réimplémente : 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
Réimplémente : 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
Réimplémente : 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
Réimplémente : 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
Réimplémente : QCommonStyle::layoutSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2, Qt::Orientation orientation, const QStyleOption *option, const QWidget *widget) const.
Ce slot est appelé par layoutSpacing() pour déterminer l'espacement à utiliser entre control1 et control2 dans une disposition. orientation spécifie si les contrôles sont disposés côte à côte ou empilés verticalement. Le paramètre option peut être utilisé pour transmettre des informations supplémentaires sur le widget parent. Le paramètre widget est facultatif et peut également être utilisé si option est nullptr.
L'implémentation par défaut renvoie -1.
Voir aussi combinedLayoutSpacing().
[override virtual] int QProxyStyle::pixelMetric(QStyle::PixelMetric metric, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const
Réimplémente : QCommonStyle::pixelMetric(QStyle::PixelMetric m, const QStyleOption *opt, const QWidget *widget) const.
[override virtual] void QProxyStyle::polish(QApplication *app)
Réimplémente : QCommonStyle::polish(QApplication *app).
[override virtual] void QProxyStyle::polish(QPalette &pal)
Réimplémente : QCommonStyle::polish(QPalette &pal).
[override virtual] void QProxyStyle::polish(QWidget *widget)
Réimplémente : QCommonStyle::polish(QWidget *widget).
void QProxyStyle::setBaseStyle(QStyle *style)
Définit le style de base qui doit être utilisé par procuration.
La propriété de style est transférée à QProxyStyle.
Si le style est nullptr, un style dépendant du bureau sera attribué automatiquement.
Voir aussi baseStyle().
[override virtual] QSize QProxyStyle::sizeFromContents(QStyle::ContentsType type, const QStyleOption *option, const QSize &size, const QWidget *widget) const
Réimplémente : 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
Réimplémente : QStyle::standardIcon(QStyle::StandardPixmap standardIcon, const QStyleOption *option, const QWidget *widget) const.
Renvoie une icône pour l'adresse standardIcon donnée.
Réimplémentez ce slot pour fournir vos propres icônes dans une sous-classe de QStyle. L'argument option peut être utilisé pour transmettre des informations supplémentaires nécessaires à la recherche de l'icône appropriée. L'argument widget est facultatif et peut également être utilisé pour aider à trouver l'icône.
[override virtual] QPalette QProxyStyle::standardPalette() const
Réimplémente : QStyle::standardPalette() const.
[override virtual] QPixmap QProxyStyle::standardPixmap(QStyle::StandardPixmap standardPixmap, const QStyleOption *opt, const QWidget *widget = nullptr) const
Réimplémente : 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
Réimplémente : 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
Réimplémente : 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
Réimplémente : QCommonStyle::subElementRect(QStyle::SubElement sr, const QStyleOption *opt, const QWidget *widget) const.
[override virtual] void QProxyStyle::unpolish(QApplication *app)
Réimplémente : QCommonStyle::unpolish(QApplication *application).
[override virtual] void QProxyStyle::unpolish(QWidget *widget)
Réimplémente : QCommonStyle::unpolish(QWidget *widget).
© 2026 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.