我覆盖了QGraphicsTextItem中的focusOutEvent
void EditTextItem::focusOutEvent(QFocusEvent *event)
{
setTextInteractionFlags(Qt::NoTextInteraction);
emit lostFocus(this);
QGraphicsTextItem::focusOutEvent(event);
}
当用户编辑文本项时,我将编辑后的文本保存到文件中。在用户编辑文本im调用以显示前一个文本之前 setPlainText(" Old Data") 它反过来调用了GraphicsTextItem和lostFocus()信号的focusOutEvent(),并且只将旧数据保存到文件中。
我想知道如何避免setPlainText调用focusOutEvent。
答案 0 :(得分:1)
我不知道你是否可以避免它,但是你可以在之后调用bool-member
和false
之前引入设置为setPlainText
的{{1}}。在true
中,然后检查成员的状态。
我通常不喜欢这些东西,并认为它们有点肮脏,但通常只是一种简单,快速和可靠的方式。