Класс QProxyStyle
Класс QProxyStyle — это вспомогательный класс, который упрощает динамическое переопределение элементов QStyle. Подробнее...
| Заголовок: | #include <QProxyStyle> |
| qmake: | QT += widgets |
| С тех пор: | Qt 4.6 |
| Наследует: | QCommonStyle |
Этот класс был введён в Qt 4.6.
Открытые функции
| QProxyStyle(const QString &key) | |
| QProxyStyle(QStyle *style = nullptr) | |
| 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(QWidget *widget) override |
| virtual void | polish(QPalette &pal) override |
| virtual void | polish(QApplication *app) 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(QWidget *widget) override |
| virtual void | unpolish(QApplication *app) 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 = 0,
const QWidget *widget = 0, QStyleHintReturn *returnData = 0) 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 общие темы будут учитывать этот совет, потому что они вызывают QStyle::proxy(), но нет гарантии, что QStyle::proxy() будет вызван для пользовательских или системных тем. Например, он не будет работать на Mac, где меню обрабатываются операционной системой.
См. также QStyle.
Документация по функциям-членам
QProxyStyle::QProxyStyle(const QString &key)
Создаёт объект QProxyStyle для переопределения поведения в базовой теме, заданной параметром key, или в текущей теме приложения, если указанный параметр key не распознан.
См. также QStyleFactory::create().
QProxyStyle::QProxyStyle(QStyle *style = nullptr)
Создаёт объект QProxyStyle для переопределения поведения в заданной теме, или в стандартной родной теме, если style не указан.
Владение style передаётся QProxyStyle.
[virtual] 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 равен 0.
Реализация по умолчанию возвращает -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(QWidget *widget)
Переопределяет: QCommonStyle::polish(QWidget *widget).
[override virtual] void QProxyStyle::polish(QPalette &pal)
Переопределяет: QCommonStyle::polish(QPalette &pal).
[override virtual] void QProxyStyle::polish(QApplication *app)
Переопределяет: QCommonStyle::polish(QApplication *app).
void QProxyStyle::setBaseStyle(QStyle *style)
Устанавливает базовый стиль, который должен быть проксирован.
Владение style передается QProxyStyle.
Если style равен нулю, автоматически будет назначен стиль, зависящий от рабочего стола.
См. также baseStyle().
[override virtual] QSize QProxyStyle::sizeFromContents(QStyle::ContentsType type, const QStyleOption *option, const QSize &size, const QWidget *widget) const
Переопределяет: QCommonStyle::sizeFromContents(QStyle::ContentsType ct, const QStyleOption *opt, const QSize &csz, 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(QWidget *widget)
Переопределяет: QCommonStyle::unpolish(QWidget *widget).
[override virtual] void QProxyStyle::unpolish(QApplication *app)
Переопределяет: QCommonStyle::unpolish(QApplication *application).
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/qproxystyle.html