0

地獄-すべて、私はqtに不慣れで、私は1つのポイントを描くのに苦労しています。

最終的にQgraphicsSceneを呼び出す大きなqMainWindowがあり、その中に1つのポイント、1つの小さなピクセルを描画する必要があります。これで、QPainterを使用したいのですが、インスタンス化に問題があります。何か案は??

4

1 に答える 1

3

あなたがやろうとしていることのサンプルコードは、ここで大いに役立つでしょう。

QPainterの使用:キャンバスオブジェクトを指すQPainterオブジェクトを作成してから、を呼び出しますpainter_obj.drawPoint(x,y);。オブジェクトのデストラクタが実際の描画を開始できるように、QPainterはヒープではなく、スタック上に作成する必要があることに注意してください。

ドキュメントからの例:

void SimpleExampleWidget::paintEvent(QPaintEvent *)
 {
     QPainter painter(this);
     painter.setPen(Qt::blue);
     painter.setFont(QFont("Arial", 30));
     painter.drawText(rect(), Qt::AlignCenter, "Qt");
 }

QGraphicsSceneの使用:通常、QGraphicsSceneを使用して、ビューの周囲に浮かんでいる多数のオブジェクトを同時に管理します。これは、単純な描画ウィジェットにはやり過ぎです。QGraphicsSceneは、iirc、QPainterがペイントするための有効なキャンバスではありません。

代わりに、適切なタイプのQGraphicsItem(またはサブクラス)を作成し、paintメソッドをオーバーライドします。QGrpahicsItemがシーンに追加されると、ライブラリは、適切な場合に描画を処理するために使用するQPainterオブジェクトを渡します。

于 2010-09-02T23:01:38.257 に答える