2015-07-10 10 views
0

У меня есть QTreeView, который связан с моделью (QStandardItemModel), поэтому дерево заполнено, и я могу его отобразить.Элементы QTreeView редактируются и выбирают целые строки

Когда я дважды нажимаю на элементы, открывается режим редактирования элемента, где я могу изменить содержимое полей.

Я не хочу этого делать!

  1. Я бы хотел, чтобы мои поля были исправлены и не редактировались.
  2. Далее при выборе этого дерева следует выбрать полную строку.

Я признателен за любую помощь, Sincerly

ответ

1

Для 1.

QStandardItem* item = new StandardItem(QString(itemNameString)); 
item->setEditable(false); 

Но здесь, вы должны установить, что для каждого поля, при создании вашего QStandardItemModel. Я не знаю, если это эффективно для вас? Возможно, нет, когда слишком много записей?

Для 2. попробовать

ui->treeView->setSelectionBehavior (QAbstractItemView::SelectRows); 
+0

Если у него много записей затем 'QStandardItemModel' не рекомендуется. В таких случаях более эффективно писать собственную модель данных. Я имею в виду, что для каждого элемента нет значительных накладных расходов для 'setEditable', если это будет, тогда лучше отказаться от' QStandardItemModel'. –

+0

Я заполняю свой TreeModel ок. 980 записей, структурированных как дерево. Я думаю, что это не так много? 1 и 2 решает мои проблемы, но нет ничего похожего на то, что QTreeView :: setEditable (false) устанавливается один раз для всего дерева, а не для каждого элемента. –

+0

это небольшое количество. Но помните, что конечный пользователь может использовать больший набор данных, если это позволяет ваше приложение. –

0
+0

Я не понял 1: mainwindow.cpp: 34: Ошибка: нет соответствующей функции для вызова «QTreeView :: setSelectionBehavior (Qt :: ItemFlag)» ui-> treeView-> setSelectionBehavior (Qt :: ItemIsSelectable); –

+0

мой ответ точно такой же, как принято после редактирования. Ваша ошибка странная и относится к первой версии исключенного ответа. Вам нужно предоставить больше данных для устранения этой ошибки компиляции. –

 Смежные вопросы

  • Нет связанных вопросов^_^