QStylePainter 类

QStylePainter 类是方便类用于绘制 QStyle 元素在 Widget 内。 更多...

头: #include <QStylePainter>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
继承: QPainter

公共函数

QStylePainter ()
QStylePainter (QWidget * widget )
QStylePainter (QPaintDevice * pd , QWidget * widget )
bool begin (QWidget * widget )
bool begin (QPaintDevice * pd , QWidget * widget )
void drawComplexControl (QStyle::ComplexControl cc , const QStyleOptionComplex & option )
void drawControl (QStyle::ControlElement ce , const QStyleOption & option )
void drawItemPixmap (const QRect & rect , int flags , const QPixmap & pixmap )
void drawItemText (const QRect & rect , int flags , const QPalette & pal , bool enabled , const QString & text , QPalette::ColorRole textRole = QPalette::NoRole)
void drawPrimitive (QStyle::PrimitiveElement pe , const QStyleOption & option )
QStyle * style () const

详细描述

QStylePainter 延伸 QPainter 采用一组高级 draw...() 函数实现基于 QStyle 的 API。使用 QStylePainter 的优点是参数列表会变得相当短。而 QStyle 对象能够在任何 Widget 中绘制必须使用任何描绘器 (因为应用程序通常有一 QStyle 对象由所有 Widget 共享),QStylePainter 采用 Widget 初始化,无需指定 QWidget QPainter ,和 QStyle 对于每个函数调用。

范例使用 QStyle 直接:

void MyWidget::paintEvent(QPaintEvent * /* event */)
{
    QPainter painter(this);
    QStyleOptionFocusRect option;
    option.initFrom(this);
    option.backgroundColor = palette().color(QPalette::Background);
    style()->drawPrimitive(QStyle::PE_FrameFocusRect, &option, &painter, this);
}
					

范例使用 QStylePainter:

void MyWidget::paintEvent(QPaintEvent * /* event */)
{
    QStylePainter painter(this);
    QStyleOptionFocusRect option;
    option.initFrom(this);
    option.backgroundColor = palette().color(QPalette::Background);
    painter.drawPrimitive(QStyle::PE_FrameFocusRect, option);
}
					

另请参阅 QStyle and QStyleOption .

成员函数文档编制

QStylePainter:: QStylePainter ()

构造 QStylePainter。

[explicit] QStylePainter:: QStylePainter ( QWidget * widget )

构造 QStylePainter 使用小部件 widget 对于其描绘设备。

QStylePainter:: QStylePainter ( QPaintDevice * pd , QWidget * widget )

构造 QStylePainter 使用 pd 对于其描绘设备,且属性来自 widget .

bool QStylePainter:: begin ( QWidget * widget )

开始描绘操作在指定 widget 。返回 true 若描绘器使用就绪;否则返回 false .

这被自动调用通过构造函数接受 QWidget .

bool QStylePainter:: begin ( QPaintDevice * pd , QWidget * widget )

这是重载函数。

开始描绘操作在描绘设备 pd 就像它是 widget .

这被自动调用通过构造函数接受 QPaintDevice QWidget .

void QStylePainter:: drawComplexControl ( QStyle::ComplexControl cc , const QStyleOptionComplex & option )

使用 Widget 的样式来绘制复杂控件 cc 指定通过 QStyleOptionComplex option .

另请参阅 QStyle::drawComplexControl ().

void QStylePainter:: drawControl ( QStyle::ControlElement ce , const QStyleOption & option )

使用 Widget 的样式来绘制控件元素 ce 指定通过 QStyleOption option .

另请参阅 QStyle::drawControl ().

void QStylePainter:: drawItemPixmap (const QRect & rect , int flags , const QPixmap & pixmap )

绘制 pixmap 按矩形 rect 。像素图的对齐是根据 flags .

另请参阅 QStyle::drawItemPixmap () 和 Qt::Alignment .

void QStylePainter:: drawItemText (const QRect & rect , int flags , const QPalette & pal , bool enabled , const QString & text , QPalette::ColorRole textRole = QPalette::NoRole)

绘制 text 按矩形 rect 和调色板 pal 。文本的对齐和换行是根据 flags .

钢笔颜色的指定是采用 textRole enabled 布尔指示是否启用项;当重实现此布尔时,应该会影响如何绘制项。

另请参阅 QStyle::drawItemText () 和 Qt::Alignment .

void QStylePainter:: drawPrimitive ( QStyle::PrimitiveElement pe , const QStyleOption & option )

使用 Widget 样式绘制图元元素 pe 指定通过 QStyleOption option .

另请参阅 QStyle::drawPrimitive ().

QStyle *QStylePainter:: style () const

返回的当前样式用于 QStylePainter .