0

で描く必要がありますQPainterが、やろうとすると

void paintEvent( QPaintEvent* )

エラーが発生しました:

QPainter :: setPen:ペインターがアクティブではありません

QPainter :: setBrush:ペインターがアクティブではありません

QPainter無効にしないで使用できますpaintEvent( QPaintEvent* )か?

ありがとうございました。

4

1 に答える 1

3

のペイントデバイスとしてウィジェットを使用していますQPainter。この場合、QPainter通常はウィジェットのペイントイベントのコンテキスト内でのみ使用できます。QPainterドキュメントには、これについて次のように書かれています。

警告: paintdeviceがウィジェットの場合、QPainterはpaintEvent()関数内またはpaintEvent()によって呼び出される関数でのみ使用できます。これは、Qt::WA_PaintOutsidePaintEventウィジェット属性が設定されていない場合です。Mac OS XおよびWindowsでは、この属性の設定に関係なく、paintEvent()関数でのみペイントできます。

たとえば、にQPainter別のペイントデバイスを設定することにより、ペイントイベントの外部で使用することができます。QPainterQPixmap

于 2010-10-26T15:56:41.750 に答える