去掉QGraphicsTextItem选中状态的虚线框
在使用Qt绘制图形时,我们难免会用到QGraphicsTextItem这个类。但是,在默认情况下,当我们选中一个QGraphicsTextItem时,会出现一个灰色的虚线框,有时候对美观性有影响。那么怎样去掉这个虚线框呢?下面就来介绍一下。
首先,我们需要继承QGraphicsTextItem类,创建一个新的类。在这个新类中,我们需要重写两个函数:paint()和mousePressEvent()。
在paint()函数中,我们将选中时的虚线框给隐藏起来:
void MyTextItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
Q_UNUSED(widget);
if (option->state & QStyle::State_Selected) {
option->state ^= QStyle::State_Selected;
QGraphicsTextItem::paint(painter, option, widget);
option->state |= QStyle::State_Selected;
} else {
QGraphicsTextItem::paint(painter, option,