我有QTableView
一列使用 aQLineEdit
作为其编辑器委托,而其他列需要在用户输入时动态更新QLineEdit
(例如,其中一列包含输入的文本的长度,QLineEdit
它应该作为用户更新类型,而不是等待他们按 Enter 提交)。
我使用了这段代码:Qt:在编辑 QTableView 项目数据时发出信号,而不是在编辑完成后发出信号?这主要是有效的。它将QLineEdit textChanged()
信号连接到编辑器的commitData()
信号。
这段代码的问题在于,当用户键入时,QLineEdit
的插入光标总是跳到末尾。如果您将文本附加到行尾,那很好。但是如果用户想在行的中间插入或编辑文本,每输入一个字母,文本插入光标就会跳到QLineEdit
. 每次击键后,他们必须重新定位光标才能在中间完成插入/编辑。
如果我禁用映射器,则光标不会跳转,因此它不是编辑器委托所固有的;仅在使用上面链接的问题中的代码时才会发生。
我查看了代码QLineEdit textChanged()
,commitData()
但我无法弄清楚是什么导致光标跳转到QLineEdit
. 有任何想法吗?谢谢!