QStylePainter 类

QStylePainter 类是对绘制 widget 中 QStyle 元素的便捷类。 更多...

头文件 #include <QStylePainter>
CMakefind_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmakeQT += widgets
继承自 QPainter

公有函数

QStylePainter()
QStylePainter(QWidget *widget)
QStylePainter(QPaintDevice *pd, QWidget *widget)
boolbegin(QWidget *widget)
boolbegin(QPaintDevice *pd, QWidget *widget)
voiddrawComplexControl(QStyle::ComplexControl cc, const QStyleOptionComplex &option)
voiddrawControl(QStyle::ControlElement ce, const QStyleOption &option)
voiddrawItemPixmap(const QRect &rect, int flags, const QPixmap &pixmap)
voiddrawItemText(const QRect &rect, int flags, const QPalette &pal, bool enabled, const QString &text, QPalette::ColorRole textRole = QPalette::NoRole)
voiddrawPrimitive(QStyle::PrimitiveElement pe, const QStyleOption &option)
QStyle *style() const

详细描述

QStylePainter 在 QPainter 的基础上扩展了一组高级的 draw...() 函数,这些函数在 QStyle 的 API 上实现。使用 QStylePainter 的优势在于参数列表明显缩短。而一个 QStyle 对象必须能够使用任何 painter 在任何 widget 上绘制(因为应用程序通常有一个由所有 widget 共享的 QStyle 对象),QStylePainter 使用一个 widget 初始化,消除了在每个函数调用中指定 QWidgetQPainterQStyle 的需要。

直接使用 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);
}

另请参阅 QStyleQStyleOption

成员函数文档

QStylePainter::QStylePainter()

构造 QStylePainter。

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

使用指定的部件 widget 为其绘画设备构造一个 QStylePainter。

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

使用 pd 作为其绘画设备并且使用来自 widget 的属性构造一个 QStylePainter。

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)

使用部件的样式根据 QStyleOptionComplex option 中的指定绘制一个复杂控件 cc

另请参阅QStyle::drawComplexControl

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

使用部件的样式根据 QStyleOption option 中的指定绘制一个控件元素 ce

另请参阅QStyle::drawControl

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

在矩形 rect 中绘制 pixmap。根据 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)

在矩形 rect 和调色板 pal 中绘制 text。文本根据 flags 对齐和换行。

使用 textRole 指定画笔颜色。enabled 布尔值指示项目是否启用;当重新实现时,此布尔值应影响项目的绘制方式。

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

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

使用小部件的风格来绘制由 QStyleOption option 指定的原始元素 pe

另请参阅 QStyle::drawPrimitive()。

QStyle *QStylePainter::style() const

返回当前使用的 QStylePainter 的风格。

© 2024 The Qt Company Ltd. 本文档中包含的文档贡献是各自所有者的版权。此处提供的文档根据 Free Software Foundation 发布的 GNU 自由文档许可证版本 1.3 的条款提供许可。Qt 及其相关标志是 The Qt Company Ltd. 在芬兰和/或其他国家的商标。所有其他商标均为其各自所有者的财产。