0


0

QPainterで描く

「QPainter」で描画する必要がありますが、

void paintEvent( QPaintEvent* )

私はエラーをキャッチします:

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

QPainter

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

void `paintEvent(QPaintEvent *)`にない `QPainter`を使用できますか?

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

1 Answer


3


「QPainter」のペイントデバイスとしてウィジェットを使用しています。 この場合、「QPainter」は通常、ウィジェットのペイントイベントのコンテキスト内でのみ使用できます。 http://doc.trolltech.com/4.7/qpaintdevice.html [`QPainter`のドキュメント]には、これについて次のように書かれています。

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

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