Qt 4.7.4 - 在QGraphicsItem pixmap中使透明像素可点击(展开hitbox)

时间:2012-07-26 08:40:49

标签: qt transparency qgraphicsview qpixmap movable

我正在使用Qt Creator创建电路原理图编辑器。我有一个QGraphicsScene / QGraphicsView画布,我想将电路元件的图像放到上面并移动它们。

我目前正在使用像素图QGraphicsItem并将其添加到画布并使其可移动。直接单击符号的线条时效果很好,但是当单击图像中的透明区域时,符号不会移动。

有没有办法扩展hitbox /鼠标区域,使这些透明区域的响应与其他区域在符号上的响应相同?以下是我添加图片的方法。 (我需要图像透明,以便在其后面/前面可以看到其他符号)

QGraphicsItem* b = canvas.addPixmap(QPixmap(":/images/ground2.gif"));
b->setFlag(QGraphicsItem::ItemIsMovable);
b->setPos(qrand()%int(canvas.width()),qrand()%int(canvas.height()));

非常感谢所有帮助!谢谢! 约什

1 个答案:

答案 0 :(得分:2)

您可以致电QGraphicsPixmapItem::setShapeMode( QGraphicsPixmapItem::BoundingRectShape )将项目视为矩形。