QListView和QAbstractListModel:如何手动设置正在编辑的项目,光标闪烁?
问题描述:
我有一个QAbstractListModel
和QListView
(例如,一个电子设备的输入端口列表)。QListView和QAbstractListModel:如何手动设置正在编辑的项目,光标闪烁?
我刚刚在模型中添加了一行,给它一个临时名称(类似于"RENAME_ME_PLZ_ASAP"
)。我希望用户重新命名它,并且我想将编辑焦点设置到该单元格,以便可以开始输入新的端口名称,而无需将鼠标指向添加的单元格并双击它。
该项目的编辑应该开始,并且应该选择其临时文本内容(当用户在打字开始时将被删除)。
如何能不能做到?
答
正如你所说,你应该应该能够编辑,而不用将鼠标瞄准添加的单元格并双击它。
可能您可以使用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(...)
的方法。
^__^