QProxyStyle 类

The QProxyStyle class is a convenience class that simplifies dynamically overriding QStyle 元素。 更多...

头: #include <QProxyStyle>
qmake: QT += widgets
Since: Qt 4.6
继承: QCommonStyle

公共函数

QProxyStyle (QStyle * style = nullptr)
QProxyStyle (const QString & key )
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

静态公共成员

const QMetaObject staticMetaObject

重实现保护函数

virtual bool event (QEvent * e ) override

额外继承成员

详细描述

The QProxyStyle class is a convenience class that simplifies dynamically overriding QStyle 元素。

A QProxyStyle wraps a 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 ( QStyle * style = nullptr)

构造 QProxyStyle object for overriding behavior in the specified style ,或按默认本机 style if style 未指定。

所有权对于 style 会被转移给 QProxyStyle .

QProxyStyle:: QProxyStyle (const QString & key )

构造 QProxyStyle object for overriding behavior in the base style specified by style key ,或按当前 应用程序样式 若指定样式 key 无法识别。

另请参阅 QStyleFactory::create ().

[虚拟] 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 ().

[override virtual] void QProxyStyle:: drawControl ( QStyle::ControlElement element , const QStyleOption * option , QPainter * painter , const QWidget * widget = nullptr) const

重实现自 QCommonStyle::drawControl ().

[override virtual] void QProxyStyle:: drawItemPixmap ( QPainter * painter , const QRect & rect , int alignment , const QPixmap & pixmap ) const

重实现自 QStyle::drawItemPixmap ().

[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 ().

[override virtual] void QProxyStyle:: drawPrimitive ( QStyle::PrimitiveElement element , const QStyleOption * option , QPainter * painter , const QWidget * widget = nullptr) const

重实现自 QCommonStyle::drawPrimitive ().

[override virtual protected] bool QProxyStyle:: event ( QEvent * e )

重实现自 QObject::event ().

[override virtual] QPixmap QProxyStyle:: generatedIconPixmap ( QIcon::Mode iconMode , const QPixmap & pixmap , const QStyleOption * opt ) const

重实现自 QCommonStyle::generatedIconPixmap ().

[override virtual] QStyle::SubControl QProxyStyle:: hitTestComplexControl ( QStyle::ComplexControl control , const QStyleOptionComplex * option , const QPoint & pos , const QWidget * widget = nullptr) const

重实现自 QCommonStyle::hitTestComplexControl ().

[override virtual] QRect QProxyStyle:: itemPixmapRect (const QRect & r , int flags , const QPixmap & pixmap ) const

重实现自 QStyle::itemPixmapRect ().

[override virtual] QRect QProxyStyle:: itemTextRect (const QFontMetrics & fm , const QRect & r , int flags , bool enabled , const QString & text ) const

重实现自 QStyle::itemTextRect ().

[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 ().

此槽由 layoutSpacing() 调用,以确定应该使用的间距介于 control1 and control2 在布局。 orientation 指定控件是并排布局,还是垂直堆叠。 option 参数可以用于传递父级 Widget 的有关额外信息。 widget 参数是可选的,且也可以使用若 option 为 0。

默认实现返回 -1。

另请参阅 combinedLayoutSpacing ().

[override virtual] int QProxyStyle:: pixelMetric ( QStyle::PixelMetric metric , const QStyleOption * option = nullptr, const QWidget * widget = nullptr) const

重实现自 QCommonStyle::pixelMetric ().

[override virtual] void QProxyStyle:: polish ( QWidget * widget )

重实现自 QCommonStyle::polish ().

[override virtual] void QProxyStyle:: polish ( QPalette & pal )

重实现自 QCommonStyle::polish ().

[override virtual] void QProxyStyle:: polish ( QApplication * app )

重实现自 QCommonStyle::polish ().

void QProxyStyle:: setBaseStyle ( QStyle * style )

设置应被代理的基样式。

所有权对于 style 会被转移给 QProxyStyle .

If style is zero, a desktop-dependant style will be assigned automatically.

另请参阅 baseStyle ().

[override virtual] QSize QProxyStyle:: sizeFromContents ( QStyle::ContentsType type , const QStyleOption * option , const QSize & size , const QWidget * widget ) const

重实现自 QCommonStyle::sizeFromContents ().

[override virtual] QIcon QProxyStyle:: standardIcon ( QStyle::StandardPixmap standardIcon , const QStyleOption * option = nullptr, const QWidget * widget = nullptr) const

返回图形为给定 standardIcon .

重实现此槽以提供自己的图标在 QStyle 子类。 option 自变量可以用于传递查找适当图标要求的额外信息。 widget 自变量是可选的,且还可以用来帮助查找图标。

[override virtual] QPalette QProxyStyle:: standardPalette () const

重实现自 QStyle::standardPalette ().

[override virtual] QPixmap QProxyStyle:: standardPixmap ( QStyle::StandardPixmap standardPixmap , const QStyleOption * opt , const QWidget * widget = nullptr) const

重实现自 QCommonStyle::standardPixmap ().

[override virtual] int QProxyStyle:: styleHint ( QStyle::StyleHint hint , const QStyleOption * option = nullptr, const QWidget * widget = nullptr, QStyleHintReturn * returnData = nullptr) const

重实现自 QCommonStyle::styleHint ().

[override virtual] QRect QProxyStyle:: subControlRect ( QStyle::ComplexControl cc , const QStyleOptionComplex * option , QStyle::SubControl sc , const QWidget * widget ) const

重实现自 QCommonStyle::subControlRect ().

[override virtual] QRect QProxyStyle:: subElementRect ( QStyle::SubElement element , const QStyleOption * option , const QWidget * widget ) const

重实现自 QCommonStyle::subElementRect ().

[override virtual] void QProxyStyle:: unpolish ( QWidget * widget )

重实现自 QCommonStyle::unpolish ().

[override virtual] void QProxyStyle:: unpolish ( QApplication * app )

重实现自 QCommonStyle::unpolish ().