Qt描画イベント

Qtの描画は描画イベントで行われます。描画システム全体はQPainterQPainterDeviceおよびQPaintEngine3つのカテゴリに基づいています。

QPainterは描画に使用され、QPainterDeviceは描画デバイスです。QPainterはQPainterDeviceに画像を描画します。

Qt描画システム

QPaintEngineの存在が見えないだけです。使用の使用、それらの間、上のドローを(翻訳である通信命令の)。QPainterQPainterDeviceQPaintEngineQPainter

もちろん、描画も描画イベント関数で行う必要があります。基本クラスの描画関数を書き換えます。以下に示すように:

void MainWindow::paintEvent(QPaintEvent *event)
{
    paint = new QPainter(this);
    paint->setPen(QColor(0,0,255));
    paint->drawLine(30,30,300,300);
    paint->drawRect(100,100,100,100);
    paint->setPen((QColor(255,0,0)));
    paint->drawEllipse(QPoint(300,300),50,50);
}

OpenGLは状態マシンです。いわゆるステートマシンとは、OpenGLがさまざまな状態のみを保存することを意味します。たとえば、ブラシの色を赤に設定した場合、別の色をリセットしない限り、その色は常に赤になります。QPainter同じことが言えます。さまざまな設定機能を使用しない限り、状態は自動的には回復しません。

結果は次のとおりです。

この時点で、ウィンドウのサイズを変更すると、次の出力情報が表示されることに注意してください。つまり、再描画関数としてのpaintEvent()は、再描画が必要なときにQtによって自動的に呼び出されます。「再描画が必要」は、コンポーネントが作成された直後に再描画する必要があるなど、多くの場所で発生する可能性があります。コンポーネントが最大化および最小化された場合は、再描画する必要があります。コンポーネントがオクルージョンからフル表示に変化した場合も、待機する必要があります。

 

参考ブログ:https : //www.devbean.net/2012/10/qt-study-road-2-paint-sys/

 

 

242の元の記事を公開 180のような 160,000以上を訪問

おすすめ

転載: blog.csdn.net/zy010101/article/details/105437222