QProxyStyle 類

QProxyStyle 類是方便類為簡化動態覆蓋 QStyle 元素。 更多...

頭: #include <QProxyStyle>
qmake: QT += widgets
Since: 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 = 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 () 會被調用對於用戶定義 (或係統控製) 樣式。例如:在 Mac 它不工作,因為菜單是由操作係統處理的。

另請參閱 QStyle .

成員函數文檔編製

QProxyStyle:: QProxyStyle (const QString & key )

構造 QProxyStyle 對象為覆寫行為按基樣式指定通過樣式 key ,或按當前 應用程序樣式 若指定樣式 key 無法識彆。

另請參閱 QStyleFactory::create ().

QProxyStyle:: QProxyStyle ( QStyle * style = nullptr)

構造 QProxyStyle 對象為覆寫行為按指定 style ,或按默認本機 style if style 未指定。

所有權對於 style 會被轉移給 QProxyStyle。

[虛擬] 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 and control2 在布局。 orientation 指定控件是並排布局,還是垂直堆疊。 option 參數可以用於傳遞父級 Widget 的有關額外信息。 widget 參數是可選的,且也可以使用若 option is 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 .

若樣式為 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).