2017-04-05 79 views
1

我有一個QAbstractListModelQListView(例如,一個電子設備的輸入端口列表)。QListView和QAbstractListModel:如何手動設置正在編輯的項目,光標閃爍?

我剛剛在模型中添加了一行,給它一個臨時名稱(類似於"RENAME_ME_PLZ_ASAP")。我希望用戶重新命名它,並且我想將編輯焦點設置到該單元格,以便可以開始輸入新的端口名稱,而無需將鼠標指向添加的單元格並雙擊它。

該項目的編輯應該開始,並且應該選擇其臨時文本內容(當用戶在打字開始時將被刪除)。

enter image description here

如何能不能做到?

回答

0

正如你所說,你應該應該能夠編輯,而不用將鼠標瞄準添加的單元格並雙擊它。

可能您可以使用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); 
0

那麼,我剛纔打電話給QAbstractItemModel::edit(...)的方法。

^__^