QStylePainter 类
QStylePainter 类是对绘制 widget 中 QStyle 元素的便捷类。 更多...
头文件 | #include <QStylePainter> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake | QT += widgets |
继承自 | QPainter |
- 所有成员列表,包括继承的成员
- QStylePainter 是 绘画类 的一部分。
公有函数
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 对象必须能够使用任何 painter 在任何 widget 上绘制(因为应用程序通常有一个由所有 widget 共享的 QStyle 对象),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 和 QStyleOption。
成员函数文档
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. 在芬兰和/或其他国家的商标。所有其他商标均为其各自所有者的财产。