QTableView
,其中一列使用QLineEdit
作为其编辑委托,而其他列则需要随着用户键入QLineEdit
而动态更新(例如,其中一列包含在QLineEdit
中键入的文本,并且应随用户输入而更新,而不是等待用户按Enter提交。]]我使用了此代码:Qt: Signal while a QTableView item data is being edited instead of after edit is done?多数有效。它将QLineEdit textChanged()
信号连接到编辑器的commitData()
信号。
此代码的问题在于,当用户键入内容时,QLineEdit
的插入光标始终跳到结尾。如果您要在行尾添加文本,那很好。但是,如果用户想在行的中间插入或编辑文本,则每次键入一个字母时,文本插入光标都会跳到QLineEdit
的末尾。每次按键后,他们都必须重新定位光标,以完成中间的插入/编辑。
如果禁用了映射器,则光标不会跳转,因此它不是编辑器委托所固有的;仅当使用上面链接的问题中的代码时,它才会发生。
我查看了QLineEdit textChanged()
和commitData()
的代码,但我不知道是什么导致光标跳到QLineEdit
的末尾。有任何想法吗?谢谢!
我有一个QTableView,其中一列使用QLineEdit作为其编辑委托,而其他列则需要随着用户键入QLineEdit而动态更新(例如,其中一列...
int pos = lineEdit->cursorPosition();
// change text
lineEdit->setCursorPosition(pos);