0

これはメインプログラムの小さなケースです:

void Widget::paintEvent(QPaintEvent *){
    QPainter *painter1 = new QPainter(this);
    QPainter *painter2 = new QPainter(this);

    delete painter1;

    painter2->drawLine(50,50,200,100);     
}

クラッシュしています。最後の行を削除すると、次の警告メッセージが表示されます。

QPaintDevice: ペイント中のペイント デバイスを破棄できません

4

2 に答える 2

2

QPainterオブジェクトは に関連付けられていますQPaintDeviceQPainter以下の 3 番目のリンクのメモでは、 のコンテキストにおけるオブジェクトの寿命について説明していますQWidget::paintEvent()

http://qt-project.org/doc/qt-4.8/qpainter.html#details

http://qt-project.org/doc/qt-4.8/paintsystem.html

http://qt-project.org/doc/qt-4.8/qpainter.html#QPainter-2 (3 番目のリンク)

于 2013-02-11T18:35:22.017 に答える