QProxyStyle Class
The QProxyStyle class is a convenience class that simplifies dynamically overriding QStyle elements. 更多...
头文件: | #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
- 1 个公有变量继承自 QObject
- 6 个静态公有成员继承自 QStyle
- 10 个静态公有成员继承自 QObject
- 9 个受保护的函数继承自 QObject
- 2 个受保护的变量继承自 QObject
详细描述
The QProxyStyle class is a convenience class that simplifies dynamically overriding QStyle elements.
A QProxyStyle wraps a QStyle (usually the default system style) for the purpose of dynamically overriding painting or other specific style behavior.
The following example shows how to override the shortcut underline behavior on any platform:
#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(); //... }
Warning: The common styles provided by Qt will respect this hint, because they call QStyle::proxy(), but there is no guarantee that QStyle::proxy() will be called for user defined or system controlled styles. It would not work on a Mac, for example, where menus are handled by the operating system.
参见 QStyle.
成员函数
QProxyStyle::QProxyStyle(QStyle *style = Q_NULLPTR)
Constructs a QProxyStyle object for overriding behavior in the specified style, or in the default native style if style is not specified.
Ownership of style is transferred to QProxyStyle.
QProxyStyle::QProxyStyle(const QString &key)
Constructs a QProxyStyle object for overriding behavior in the base style specified by style key, or in the current application style if the specified style key is unrecognized.
参见 QStyleFactory::create().
QProxyStyle::~QProxyStyle()
Destroys the QProxyStyle object.
QStyle *QProxyStyle::baseStyle() const
Returns the proxy base style object. If no base style is set on the proxy style, QProxyStyle will create an instance of the application style instead.
参见 setBaseStyle() and 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().
This slot is called by layoutSpacing() to determine the spacing that should be used between control1 and control2 in a layout. orientation specifies whether the controls are laid out side by side or stacked vertically. The option parameter can be used to pass extra information about the parent widget. The widget parameter is optional and can also be used if option is 0.
The default implementation returns -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)
Sets the base style that should be proxied.
Ownership of style is transferred to QProxyStyle.
If style is zero, a desktop-dependant style will be assigned automatically.
参见 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().
Returns an icon for the given standardIcon.
Reimplement this slot to provide your own icons in a QStyle subclass. The option argument can be used to pass extra information required to find the appropriate icon. The widget argument is optional and can also be used to help find the icon.
[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().