[英]Selecting items in a QTreeView with keyboard arrows
我試圖用箭頭鍵在QTreeView中選擇一個項目,但找不到屬於此類的方法,該方法返回突出顯示的項目的索引。 到目前為止,我只能通過單擊鼠標來選擇項目:
connect(m_QTreeView, SIGNAL(clicked(QModelIndex)), this, SLOT(ItemTreeClicked(QModelIndex)));
但是,如果我嘗試使用鍵盤箭頭更改焦點,則當前索引不會更新。 老實說,即使我的“鼠標單擊”版本也不是完美的,因為我曾經使用過一個布爾值,該布爾值初始化為false並在進入插槽ItemTreeClicked時傳遞為true。 我必須這樣做,因為當我嘗試從列表中刪除某項時,如果我還沒有單擊任何東西,我的應用程序就會崩潰。
我在QtCreator 4.7.4上用C ++編寫代碼
任何幫助或示例代碼將不勝感激。
干杯。
也許您可以QTreeView
子類並覆蓋keyPressEvent
方法,以便它更改當前索引 ?
myqtreeview::keyPressEvent(QKeyEvent* event){
QModelIndex qmi = this->currentIndex();
if(event->key() == Qt::Key_Down){
this->setCurrentIndex(QAbstractItemModel::createIndex(qmi->row()+1, qmi->column()));
}else{
...
}
QTreeView::keyPressEvent(event);
}
注意:這只是一個想法,我目前無法對其進行測試,因此如果您想嘗試一下,可能需要稍微調整一下
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.