QListView和QAbstractListModel:如何手动设置正在编辑的项目,光标闪烁?

问题描述:

我有一个QAbstractListModelQListView(例如,一个电子设备的输入端口列表)。QListView和QAbstractListModel:如何手动设置正在编辑的项目,光标闪烁?

我刚刚在模型中添加了一行,给它一个临时名称(类似于"RENAME_ME_PLZ_ASAP")。我希望用户重新命名它,并且我想将编辑焦点设置到该单元格,以便可以开始输入新的端口名称,而无需将鼠标指向添加的单元格并双击它。

该项目的编辑应该开始,并且应该选择其临时文本内容(当用户在打字开始时将被删除)。

enter image description here

如何能不能做到?

正如你所说,你应该应该能够编辑,而不用将鼠标瞄准添加的单元格并双击它。

可能您可以使用QAbstractItemView::CurrentChanged编辑触发器。

QListView *pListView = new QListView(<<Your parent widget>>); //rough 
pListView->setEditTriggers(QAbstractItemView::CurrentChanged); 

在下面的链接中有许多编辑触发器,但我想上面的一个最适合你。

http://doc.qt.io/qt-5/qabstractitemview.html#EditTrigger-enum

而如果你是嵌入式Linux,你也可以使用。

pListView->setEditFocus(true); 

那么,我刚才打电话给QAbstractItemModel::edit(...)的方法。

^__^