Qt将一个圆形矩形添加到图形项目组

时间:2013-06-25 10:48:48

标签: qt graphics

我想知道如何用qt创建一个圆角矩形并将其添加到QGraphicsItemGroup(Qt为4.8)。

我的代码如下:

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

但是(显然)创建并向组中添加了一个矩形......我希望有一个圆角矩形。不幸的是,我找不到类似于我需要的东西...一个简单的QGraphicsRoundRectItem类。

任何人都有这方面的经验吗?

2 个答案:

答案 0 :(得分:3)

创建一个继承自QGraphicsItem

的类

然后,覆盖对象的绘图项并调用painter函数drawRoundedRect。

然后,您可以实例化新对象并将其添加到QGraphicsItemGroup。

答案 1 :(得分:0)

只需创建一个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的{​​{3}}。