QProxyStyle 类

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

头: #include <QProxyStyle>
qmake: QT += widgets
Since: 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 )

重实现保护函数

virtual bool event (QEvent * e )

额外继承成员

详细描述

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

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();
    //...
}
					

警告: 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)

构造 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 )

构造 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 ()

销毁 QProxyStyle 对象。

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 () 和 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 为 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 ().

返回图形为给定 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 ().