我需要用 绘制QPainter
,但是当我尝试不这样做时
void paintEvent( QPaintEvent* )
我发现错误:
QPainter::setPen:Painter 未激活
QPainter::setBrush: Painter 未激活
我可以使用QPainter
not in voidpaintEvent( QPaintEvent* )
吗?
谢谢你。
您正在使用小部件作为QPainter
. 在这种情况下,QPainter
通常只能在小部件的绘制事件的上下文中使用。QPainter
文档对此有以下说法:
警告:当paintdevice是一个小部件时,QPainter只能在paintEvent()函数内部或由paintEvent()调用的函数中使用;除非设置了 Qt::WA_PaintOutsidePaintEvent 小部件属性。在 Mac OS X 和 Windows 上,您只能在 paintEvent() 函数中绘制,而不管该属性的设置如何。
可以QPainter
通过为 设置另一个绘制设备来在绘制事件之外使用QPainter
,例如QPixmap
.