如何在选中时删除QGraphicsItem周围的边框?

Jus*_*tin 4 c++ qt qgraphicsitem

非常基本的问题,但我无法通过谷歌找到解决方案.在QT中选择图形项目时,它周围有一个边框.我想知道如何设置这个边界是不可见的.谢谢.

Ste*_*Chu 14

没有界面可以禁用内置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);
}
Run Code Online (Sandbox Code Playgroud)

它没有经过测试,但基本上你会传递一个选项副本并清除选择状态标志,然后再将它传递给实际paint().


mir*_*ith 6

如果您的QGraphicsItem派生自QAbstractGraphicsShapeItem,那么您可以简单地禁用它的笔,例如:

myShape->setPen(Qt::NoPen);
Run Code Online (Sandbox Code Playgroud)