Spec-Zone.ru › Qt 5.14

Класс 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API