我有一個QTreeView連接到模型(QStandardItemModel),所以樹被填充,我可以顯示它。QTreeView項目可編輯和選擇整行
當我雙擊這些項目,打開項目編輯模式,在那裏我可以修改字段的內容。
我不想那麼做!
- 我想我的領域固定,不可編輯。
- 更進一步,應該選擇一個完整的行,單擊該樹時。
我感謝所有幫助,誠懇
我有一個QTreeView連接到模型(QStandardItemModel),所以樹被填充,我可以顯示它。QTreeView項目可編輯和選擇整行
當我雙擊這些項目,打開項目編輯模式,在那裏我可以修改字段的內容。
我不想那麼做!
我感謝所有幫助,誠懇
對於1
QStandardItem* item = new StandardItem(QString(itemNameString));
item->setEditable(false);
但在這裏,你必須設置爲每個字段,建立你的QStandardItemModel時。我不知道,如果這對你有效?可能不是,當有太多條目時?
對於2.嘗試
ui->treeView->setSelectionBehavior (QAbstractItemView::SelectRows);
我不明白1:mainwindow.cpp:34:錯誤:沒有匹配函數調用'QTreeView :: setSelectionBehavior(Qt :: ItemFlag)' ui-> treeView-> setSelectionBehavior(Qt :: ItemIsSelectable); –
我的答案與編輯後接受的答案完全相同。你的錯誤很奇怪,指的是例外答案的第一個版本。您需要提供更多數據來解決此編譯錯誤。 –
如果他有很多然後條目'不建議QStandardItemModel'。在這種情況下更有效的是編寫自己的數據模型。我的意思是,每個項目上的'setEditable'沒有顯着的開銷,如果它將會放棄'QStandardItemModel'會更好。 –
我用大約填充我的TreeModel。 980個條目,構成一棵樹。我認爲那不是很多? 1&2解決了我的問題,但沒有像QTreeView :: setEditable(false)爲整個樹而不是爲每個項目設置一次。 –
這是一個小數字。但請記住,如果您的應用程序允許,最終用戶可以使用更大的數據集。 –