Класс QProxyStyle
Класс QProxyStyle — это вспомогательный класс, который упрощает динамическое переопределение элементов QStyle. Подробнее...
| Заголовок: | #include <QProxyStyle> |
| qmake: | QT += widgets |
| С момента: | Qt 4.6 |
| Наследует: | QCommonStyle |
Открытые функции
| QProxyStyle(QStyle *style = Q_NULLPTR) | |
| QProxyStyle(const QString &key) | |
| ~QProxyStyle() | |
| QStyle * | baseStyle() const |
| void | setBaseStyle(QStyle *style) |
Переопределённые открытые функции
| virtual void | drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = Q_NULLPTR) const |
| virtual void | drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = Q_NULLPTR) const |
| virtual void | drawItemPixmap(QPainter *painter, const QRect &rect, int alignment, const QPixmap &pixmap) const |
| virtual void | drawItemText(QPainter *painter, const QRect &rect, int flags, const QPalette &pal, bool enabled, const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const |
| virtual void | drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = Q_NULLPTR) const |
| virtual QPixmap | generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *opt) const |
| virtual SubControl | hitTestComplexControl(ComplexControl control, const QStyleOptionComplex *option, const QPoint &pos, const QWidget *widget = Q_NULLPTR) const |
| virtual QRect | itemPixmapRect(const QRect &r, int flags, const QPixmap &pixmap) const |
| virtual QRect | itemTextRect(const QFontMetrics &fm, const QRect &r, int flags, bool enabled, const QString &text) const |
| virtual int | layoutSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2, Qt::Orientation orientation, const QStyleOption *option = Q_NULLPTR, const QWidget *widget = Q_NULLPTR) const |
| virtual int | pixelMetric(PixelMetric metric, const QStyleOption *option = Q_NULLPTR, const QWidget *widget = Q_NULLPTR) const |
| virtual void | polish(QWidget *widget) |
| virtual void | polish(QPalette &pal) |
| virtual void | polish(QApplication *app) |
| virtual QSize | sizeFromContents(ContentsType type, const QStyleOption *option, const QSize &size, const QWidget *widget) const |
| virtual QIcon | standardIcon(StandardPixmap standardIcon, const QStyleOption *option = Q_NULLPTR, const QWidget *widget = Q_NULLPTR) const |
| virtual QPalette | standardPalette() const |
| virtual QPixmap | standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt, const QWidget *widget = Q_NULLPTR) const |
| virtual int | styleHint(StyleHint hint, const QStyleOption *option = Q_NULLPTR, const QWidget *widget = Q_NULLPTR, QStyleHintReturn *returnData = Q_NULLPTR) const |
| virtual QRect | subControlRect(ComplexControl cc, const QStyleOptionComplex *option, SubControl sc, const QWidget *widget) const |
| virtual QRect | subElementRect(SubElement element, const QStyleOption *option, const QWidget *widget) const |
| virtual void | unpolish(QWidget *widget) |
| virtual void | unpolish(QApplication *app) |
- 17 открытых функций, унаследованных от QCommonStyle
- 24 открытых функций, унаследованных от QStyle
- 32 открытых функций, унаследованных от QObject
Переопределённые защищённые функции
| virtual bool | event(QEvent *e) |
- 9 защищённых функций, унаследованных от QObject
Дополнительные наследуемые члены
- 1 свойство, унаследованное от QObject
- 1 открытый слот, унаследованный от QObject
- 2 сигнала, унаследованные от QObject
- 6 статических открытых членов, унаследованных от QStyle
- 11 статических открытых членов, унаследованных от QObject
- 9 защищённых функций, унаследованных от QObject
Подробное описание
Класс QProxyStyle — это вспомогательный класс, который упрощает динамическое переопределение элементов QStyle.
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
{
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(QStyle *style = Q_NULLPTR)
Конструирует объект QProxyStyle для переопределения поведения в указанном style или в стиле по умолчанию для текущего приложения, если style не указан.
Владение объектом style передаётся объекту QProxyStyle.
QProxyStyle::QProxyStyle(const QString &key)
Конструирует объект QProxyStyle для переопределения поведения в базовом стиле, указанном ключом key, или в текущем стиле приложения, если указанный ключ стиля key не распознан.
См. также QStyleFactory::create().
QProxyStyle::~QProxyStyle()
Уничтожает объект QProxyStyle.
QStyle *QProxyStyle::baseStyle() const
Возвращает базовый стиль объекта-прокси. Если базовый стиль не задан для стиля-прокси, QProxyStyle создаст экземпляр стиля приложения вместо него.
См. также setBaseStyle() и QStyle.
[virtual] void QProxyStyle::drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = Q_NULLPTR) const
Переопределено из QStyle::drawComplexControl().
[virtual] void QProxyStyle::drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = Q_NULLPTR) const
Переопределено из QStyle::drawControl().
[virtual] void QProxyStyle::drawItemPixmap(QPainter *painter, const QRect &rect, int alignment, const QPixmap &pixmap) const
Переопределено из QStyle::drawItemPixmap().
[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().
[virtual] void QProxyStyle::drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = Q_NULLPTR) const
Переопределено из QStyle::drawPrimitive().
[virtual protected] bool QProxyStyle::event(QEvent *e)
Переопределено из QObject::event().
[virtual] QPixmap QProxyStyle::generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *opt) const
Переопределено из QStyle::generatedIconPixmap().
[virtual] SubControl QProxyStyle::hitTestComplexControl(ComplexControl control, const QStyleOptionComplex *option, const QPoint &pos, const QWidget *widget = Q_NULLPTR) const
Переопределено из QStyle::hitTestComplexControl().
[virtual] QRect QProxyStyle::itemPixmapRect(const QRect &r, int flags, const QPixmap &pixmap) const
Переопределено из QStyle::itemPixmapRect().
[virtual] QRect QProxyStyle::itemTextRect(const QFontMetrics &fm, const QRect &r, int flags, bool enabled, const QString &text) const
Переопределено из QStyle::itemTextRect().
[virtual] int QProxyStyle::layoutSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2, Qt::Orientation orientation, const QStyleOption *option = Q_NULLPTR, const QWidget *widget = Q_NULLPTR) const
Переопределено из QStyle::layoutSpacing().
Этот слот вызывается layoutSpacing() для определения отступа, который должен использоваться между control1 и control2 в макете. orientation определяет, выстроены ли элементы управления рядом или расположены вертикально. Параметр option может использоваться для передачи дополнительной информации о родительском виджете. Параметр widget является необязательным и также может использоваться, если option равен 0.
Реализация по умолчанию возвращает -1.
См. также combinedLayoutSpacing().
[virtual] int QProxyStyle::pixelMetric(PixelMetric metric, const QStyleOption *option = Q_NULLPTR, const QWidget *widget = Q_NULLPTR) const
Переопределено из QStyle::pixelMetric().
[virtual] void QProxyStyle::polish(QWidget *widget)
Переопределено из QStyle::polish().
[virtual] void QProxyStyle::polish(QPalette &pal)
Переопределено из QStyle::polish().
[virtual] void QProxyStyle::polish(QApplication *app)
Переопределено из QStyle::polish().
void QProxyStyle::setBaseStyle(QStyle *style)
Устанавливает базовый стиль, который должен быть проксирован.
Владение style передаётся объекту QProxyStyle.
Если style равен нулю, автоматически будет назначен стиль, зависящий от рабочего стола.
См. также baseStyle().
[virtual] QSize QProxyStyle::sizeFromContents(ContentsType type, const QStyleOption *option, const QSize &size, const QWidget *widget) const
Переопределено из QStyle::sizeFromContents().
[virtual] QIcon QProxyStyle::standardIcon(StandardPixmap standardIcon, const QStyleOption *option = Q_NULLPTR, const QWidget *widget = Q_NULLPTR) const
Переопределено из QStyle::standardIcon().
Возвращает значок для заданного standardIcon.
Переопределите этот слот, чтобы предоставить свои собственные значки в подклассе QStyle. Аргумент option может использоваться для передачи дополнительной информации, необходимой для поиска соответствующего значка. Аргумент widget является необязательным и также может использоваться для поиска значка.
[virtual] QPalette QProxyStyle::standardPalette() const
Переопределено из QStyle::standardPalette().
[virtual] QPixmap QProxyStyle::standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt, const QWidget *widget = Q_NULLPTR) const
Переопределено из QStyle::standardPixmap().
[virtual] int QProxyStyle::styleHint(StyleHint hint, const QStyleOption *option = Q_NULLPTR, const QWidget *widget = Q_NULLPTR, QStyleHintReturn *returnData = Q_NULLPTR) const
Реализовано повторно из QStyle::styleHint().
[virtual] QRect QProxyStyle::subControlRect(ComplexControl cc, const QStyleOptionComplex *option, SubControl sc, const QWidget *widget) const
Реализовано повторно из QStyle::subControlRect().
[virtual] QRect QProxyStyle::subElementRect(SubElement element, const QStyleOption *option, const QWidget *widget) const
Реализовано повторно из QStyle::subElementRect().
[virtual] void QProxyStyle::unpolish(QWidget *widget)
Реализовано повторно из QStyle::unpolish().
[virtual] void QProxyStyle::unpolish(QApplication *app)
Реализовано повторно из QStyle::unpolish().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qproxystyle.html