0

我需要用 绘制QPainter,但是当我尝试不这样做时

void paintEvent( QPaintEvent* )

我发现错误:

QPainter::setPen:Painter 未激活

QPainter::setBrush: Painter 未激活

我可以使用QPainternot in voidpaintEvent( QPaintEvent* )吗?

谢谢你。

4

1 回答 1

3

您正在使用小部件作为QPainter. 在这种情况下,QPainter通常只能在小部件的绘制事件的上下文中使用。QPainter文档对此有以下说法:

警告:当paintdevice是一个小部件时,QPainter只能在paintEvent()函数内部或由paintEvent()调用的函数中使用;除非设置了 Qt::WA_PaintOutsidePaintEvent 小部件属性。在 Mac OS X 和 Windows 上,您只能在 paintEvent() 函数中绘制,而不管该属性的设置如何。

可以QPainter通过为 设置另一个绘制设备来在绘制事件之外使用QPainter,例如QPixmap.

于 2010-10-26T15:56:41.750 回答