在编辑过程中,有没有一种方法可以获取编辑器(即QLineEdit实例)?
这是一个老问题,但我在研究这个确切的问题时找到了它。
我是这样解决的:
在 QStyledItemDelegate::createEditor
中,我发出一个 const
信号,通知有一个编辑器被创建,并附带指向新创建的编辑器的指针。我将此信号连接到我的视图,它不直接存储指针,而是使用 QPointer
。
这样,就可以轻松地检查是否有编辑器,也可以确保在使用时不会遇到段错误的危险,因为如果指向的对象已经被删除,QPointer
将指向 nullptr
。
因此,只需检查 QPointer
是否指向 nullptr
(没有进行编辑)或不是(在这种情况下,它指向当前活动的编辑器)。
createEditor(QWidget*, const QStyleOptionViewItem&, const QModelIndex&) const
被标记为const
- 所以你不能修改this
对象,这意味着你实际上不能存储被返回的指针。或者我漏掉了什么? - murison