QProxyStyle Class
La classe QProxyStyle est une classe utilitaire qui simplifie la redéfinition dynamique des éléments d'QStyle. En savoir plus...
| En-tête : | #include <QProxyStyle> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake : | QT += widgets |
| Hérite de : | 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 encapsule un QStyle (généralement le style par défaut du système) afin de redéfinir dynamiquement le rendu ou d’autres comportements spécifiques du style. Il s’agit de la méthode recommandée pour ajuster le style de la plateforme dans une application de production ; voir Approches de mise en forme pour Qt Widgets.
L'exemple suivant montre comment redéfinir le comportement de soulignement des raccourcis clavier sur n'importe quelle plateforme :
#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();
//...
}Avertissement : les common styles fournis par Qt respecteront cette indication, car ils appellent QStyle::proxy(), mais rien ne garantit 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 sous macOS, par exemple, où les menus sont gérés par le système d’exploitation.
Lorsqu’un style proxy doit être défini uniquement sur un widget spécifique, vous devez veiller à ne pas définir le proxy sur le style global de l’application renvoyé par ` QWidget::style()`. Vous devez créer un style personnalisé distinct pour le widget, comme suit :
...
auto proxy = new MyProxyStyle(QApplication::style()->name());
proxy->setParent(widget); // take ownership to avoid memleak
widget->setStyle(proxy);
...Voir également QStyle.
Documentation des fonctions membres
QProxyStyle::QProxyStyle(QStyle *style = nullptr)
Crée un objet QProxyStyle permettant de redéfinir le comportement de l'style spécifié, ou de l'style natif par défaut si style n'est pas spécifié.
La propriété de ` style ` est transférée à `QProxyStyle`.
QProxyStyle::QProxyStyle(const QString &key)
Crée un objet QProxyStyle permettant de redéfinir le comportement du style de base spécifié par style key, ou de l'application style e actuel si le style spécifié key n'est pas reconnu.
Voir également QStyleFactory::create().
[virtual noexcept] QProxyStyle::~QProxyStyle()
Supprime 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 du proxy, la méthode QProxyStyle créera à la place une instance du style de l'application.
Voir également 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, 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 la fonction `layoutSpacing()` afin de 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 concernant le widget parent. Le paramètre ` widget ` est facultatif et peut également être utilisé si ` option ` est défini à ` nullptr`.
L’implémentation par défaut renvoie -1.
Voir également 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 mis en proxy.
La propriété de « style » est transférée à « QProxyStyle ».
Si style est nullptr, un style spécifique au bureau sera attribué automatiquement.
Voir également 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'standardIcon donné.
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 faciliter la recherche de 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.