如果编辑者失去焦点,我想放弃编辑QTableWidgetItem
,例如。 G。用户单击某处。默认行为是将当前输入的文本写入模型,就像用户按Enter一样。
我将QStyledItemDelegate
使用QTableWidget
。我添加了自己的createEditor
实现,并添加了自定义QLineEdit
派生类,该类在应创建编辑器时使用。
然后我尝试了不同的方法。我首先重新实现了focusOut
事件,并将文本重置为原始文本。问题是focusOut
在委托中被称为之后 setModelData
。然后,我尝试通过重新实现过滤整个event
函数,并抓住失去焦点的时刻。但是即使捕获到aboutToChangeFocus
事件类型,setModelData
仍会被调用。
那么我有机会在被称为setModelData
之前被做吗?