用QPainter绘制

时间:2010-10-26 15:35:13

标签: c++ qt qpainter

我需要使用QPainter进行绘制,但是当我尝试不在

中进行绘制时
void paintEvent( QPaintEvent* )

我发现错误:

  

QPainter :: setPen:画家不活跃

     

QPainter :: setBrush:画家不活跃

我可以使用QPainter而不是paintEvent( QPaintEvent* )吗?

谢谢。

1 个答案:

答案 0 :(得分:3)

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

  

警告:当paintdevice是   小部件,QPainter只能使用   在paintEvent()函数内或在   paintEvent()调用的函数;那   除非   Qt :: WA_PaintOutsidePaintEvent小部件   属性已设置。在Mac OS X和   Windows,你只能画一个   paintEvent()函数无论如何   这个属性的设置。

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