Header:#include < QStylePainter >
qmake:QT += widgets
Inherits:QPainter
Public Functions
QStylePainter(QPaintDevice *pd, QWidget *widget)
QStylePainter(QWidget *widget)
QStylePainter()
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 = ...)
void drawPrimitive(QStyle::PrimitiveElement pe, const QStyleOption &option)
QStyle *style() const
Detailed Description
QStylePainter扩展了QPainter,在QStyle的API上实现了一组高级的draw…()函数。使用QStylePainter的优点是参数列表变得相当短。然而,QStyle对象必须能够使用任何画家在任何小部件上绘图(因为应用程序通常有一个由所有小部件共享的QStyle对象),QStylePainter是用小部件初始化的,从而消除了为每个函数调用指定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);
}
See also QStyle and QStyleOption.
Member Function Documentation
QStylePainter::QStylePainter(QPaintDevice *pd, QWidget *widget)
使用pd构建一个QStylePainter作为它的绘画设备,并使用widget的属性。
QStylePainter::QStylePainter(QWidget *widget)
使用小部件widget为其绘制设备构造一个QStylePainter。
QStylePainter::QStylePainter()
Constructs a QStylePainter.
bool QStylePainter::begin(QWidget *widget)
在指定的小部件上开始绘制操作。如果画家已准备好使用,则返回true;否则返回false。
这是由接受QWidget的构造函数自动调用的。
bool QStylePainter::begin(QPaintDevice *pd, QWidget *widget)
这是一个重载函数。
在绘制设备pd上开始绘制操作,就像它是一个小部件一样。
这是由接受QPaintDevice和QWidget的构造函数自动调用的。
void QStylePainter::drawComplexControl(QStyle::ComplexControl cc, const QStyleOptionComplex &option)
使用小部件的样式绘制由QStyleOptionComplex选项指定的复杂控件cc。
See also QStyle::drawComplexControl().
void QStylePainter::drawControl(QStyle::ControlElement ce, const QStyleOption &option)
使用小部件的样式绘制由QStyleOption选项指定的控件元素。
See also QStyle::drawControl().
void QStylePainter::drawItemPixmap(const QRect &rect, int flags, const QPixmap &pixmap)
在矩形矩形中绘制像素图。像素图根据标志对齐。
See also QStyle::drawItemPixmap() and Qt::Alignment.
void QStylePainter::drawItemText(const QRect &rect, int flags, const QPalette &pal, bool enabled, const QString &text, QPalette::ColorRole textRole = ...)
以矩形矩形和调色板矩形绘制文本。文本根据标志进行对齐和换行。
笔的颜色由textRole指定。enabled bool表示项目是否被启用;当重新实现这个bool值时,应该会影响项目的绘制方式。
See also QStyle::drawItemText() and Qt::Alignment.
void QStylePainter::drawPrimitive(QStyle::PrimitiveElement pe, const QStyleOption &option)
使用小部件的样式绘制由QStyleOption选项指定的基本元素类型。
See also QStyle::drawPrimitive().
QStyle *QStylePainter::style() const
返回QStylePainter使用的当前样式。