Класс QProxyStyle
Класс QProxyStyle — это вспомогательный класс, который упрощает динамическое переопределение элементов QStyle. Подробнее...
| Заголовок: | #include <QProxyStyle> |
| CMake: | find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Наследует: | QCommonStyle |
Открытые функции
| 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 = 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 общие стили будут учитывать этот параметр, так как они вызывают QStyle::proxy(), но нет гарантии, что QStyle::proxy() будет вызываться для пользовательских или системных стилей. Например, это не будет работать на macOS, где меню обрабатываются операционной системой.
См. также QStyle.
Документация по функциям-членам
QProxyStyle::QProxyStyle(const QString &key)
Создаёт объект QProxyStyle для переопределения поведения в базовом стиле, заданном параметром key, или в текущем стиле приложения, если указанный стиль key не распознаётся.
См. также QStyleFactory::create().
QProxyStyle::QProxyStyle(QStyle *style = nullptr)
Создаёт объект QProxyStyle для переопределения поведения в указанном стиле style, или в стиле по умолчанию, если стиль 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 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(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 nullptr, автоматически будет назначен стиль, зависящий от операционной системы.
См. также 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-6.0/qproxystyle.html