0

Qt で角丸長方形を作成し、それを QGraphicsItemGroup (Qt は 4.8) に追加する方法を知りたいです。

私は次のようなコードを持っています:

QGraphicsItemGroup* grp = new QGraphicsItemGroup();    
QRect rct(x, y, width, height);
QGraphicsRectItem* frame = new QGraphicsRectItem(rct, grp);

しかし、これは(明らかに)長方形を作成してグループに追加しました...そして、角の丸い長方形が欲しいです。残念ながら、必要なものに似たものは見つかりませんでした...単純なQGraphicsRoundRectItemクラスです。

誰でもこれについて経験がありますか?

4

2 に答える 2

3

QGraphicsItem を継承するクラスを作成する

次に、オブジェクトのペイント項目をオーバーライドし、ペインタ関数 drawRoundedRect を呼び出します。

その後、新しいオブジェクトをインスタンス化し、QGraphicsItemGroup に追加できます。

于 2013-06-25T12:16:34.847 に答える
-1

を作成しQPainterPath、丸い長方形をパスとして追加し、シーンにパスを追加して を取得QGraphicsPathItemし、ブラシで塗りつぶすか、ペンで輪郭を描きます。このアイテムは、任意の に追加できますQGraphicsItemGroup

例 (Python/Qt バインディング)

path = QtGui.QPainterPath()
path.addRoundRect(QtCore.QRectF(x, y, w, h), rw, rh)
item = self.scene.addPath(path, pen=my_pen, brush=my_brush)
# add item to item group

丸い長方形を追加するその他の方法については、のドキュメントを参照してください。QPainterPath

于 2014-09-29T11:26:40.620 に答える