【发布时间】:2014-04-16 14:53:49
【问题描述】:
我重写了 QGraphicsTextItem 中的 focusOutEvent
void EditTextItem::focusOutEvent(QFocusEvent *event)
{
setTextInteractionFlags(Qt::NoTextInteraction);
emit lostFocus(this);
QGraphicsTextItem::focusOutEvent(event);
}
当用户编辑文本项时,我会将编辑后的文本保存到文件中。在用户编辑我调用的文本以显示上一个文本之前 setPlainText("旧数据") 这反过来又调用了 GraphicsTextItem 的 focusOutEvent() 和 lostFocus() 信号,并且我只将旧数据保存到文件中。
我想知道如何避免 setPlainText 调用 focusOutEvent 。
【问题讨论】:
-
你应该在调用
setPlainText()之前设置事件过滤器并忽略它。之后,取下过滤器。见:qt-project.org/doc/qt-4.8/eventsandfilters.html#event-filters -
感谢我尝试了您的方法并将其报告给您..
标签: qt qgraphicsitem