如何从QTableView获取当前编辑器?

时间:2013-01-28 12:59:18

标签: qt

在编辑过程中是否有获取编辑器(QLineEdit实例)的方法?

1 个答案:

答案 0 :(得分:7)

委托创建编辑窗口小部件,但不存储它,并且视图不允许访问它(可能是因为它不是持久的)。

因此,您必须继承QStyledItemDelegate并重新实现createEditor(QWidget*, const QStyleOptionViewItem&, const QModelIndex&) const以存储返回指针的副本。然后,您可以通过代理提供对编辑器的访问。

AFAIK您无法在一个视图中一次创建多个编辑器,并且跨视图委派共享是discouraged,因此保留最后创建的编辑器就足够了。我还会创建一个私有槽,它将指针置空并将其连接到已创建编辑器的已销毁信号 - 因此您知道它始终有效。