非常基本的问题,但我无法通过谷歌找到解决方案。在QT中选择图形项目时,它周围有一个边框。我想知道如何设置这个边界是不可见的。感谢。
答案 0 :(得分:13)
没有界面可以禁用内置QGraphicsItems的选择边框的绘制。我能想到的唯一方法是从内置项中派生自己的项并覆盖paint()
函数:
void MyRectItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
QStyleOptionGraphicsItem myOption(*option);
myOption.state &= ~QStyle::State_Selected;
QGraphicsRectItem::paint(painter, &myOption, widget);
}
它没有经过测试,但基本上你会传递一个选项副本并清除选择状态标志,然后再将它传递给实际的paint()
。
答案 1 :(得分:5)
如果您的QGraphicsItem派生自QAbstractGraphicsShapeItem,那么您可以简单地禁用它的笔,例如:
myShape->setPen(Qt::NoPen);
答案 2 :(得分:0)
对于那些试图用 python 搞清楚的人:
def paint(self, painter, option, a):
option.state = QStyle.State_None
return super(MyClassName, self).paint(painter,option)