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 對象為覆寫行為按基樣式指定通過樣式 key ,或按當前 應用程序樣式 若指定樣式 key 無法識彆。
另請參閱 QStyleFactory::create ().
構造 QProxyStyle 對象為覆寫行為按指定 style ,或按默認本機 style if style 未指定。
所有權對於 style 會被轉移給 QProxyStyle。
[虛擬]
QProxyStyle::
~QProxyStyle
()
銷毀 QProxyStyle 對象。
返迴代理基樣式對象。若代理樣式未設置基樣式, 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).
設置應被代理的基樣式。
所有權對於 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).