0

QGraphicsItemをサブクラス化し、ペイントを再実装しました。
ペイントでは、アイテムにラベルを付けるために次のようなものを書きました。

 painter->drawText("Test",10,40);

しばらくすると、別のアイテムでラベリングを処理するのが役立つかもしれないと思います。だから私はこのようなものを書きました。

QGraphicsTextItem *label = new QGraphicsTextItem("TEST",this);
setPos(10,40);

ただし、2つの「テスト」図面が画面の同じ場所に表示されません。違いはアイテムの座標、つまりシーンの座標に関係しているのではないかと思います。QGraphicsItemインターフェイス内ですべてのmapFrom...とmapTo...の組み合わせを試しましたが、進行しませんでした。画面の同じ場所に絵を表示したい。
何が恋しい?

4

1 に答える 1

1

どちらの場合も同じフォントサイズとタイプを使用していると思います。位置の違いが非常に小さい場合は、QGraphicTextItemが含まれるテキストにパディングを使用していることが原因である可能性があります。内部に派手なものを追加しないQGraphicsSimpleTextItemを使用して、同じ問題がまだ発生するかどうかを確認します。painterまたはsetPostを使用する場合、座標系は同じであるため、問題はありません。これが役に立たない場合は、Qtが分離スペースを所有することを追加しないように、両方に同じrectを指定することをお勧めします。

于 2010-06-14T08:52:12.783 に答える