Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: xintrea от Декабрь 04, 2008, 19:36



Название: QTreeView: как убрать редактирование ветки по двойному клику?
Отправлено: xintrea от Декабрь 04, 2008, 19:36
Здравствуйте!


Имею QTreeView и модель к нему (по принципу примера examples/itemviews/editabletreemodel). Проблема в том, что при двойном клике на ветке дерева, данная ветка переходит в режим редактирования. Я облазил код, и не нашел в каком месте включается такое поведение.

А мне нужно чтобы при двойном клике срабатывал определенный самодельный слот.

Я прописываю соединение сигнала doubleClicked() и самодельного слота modify() вот так

Код:
connect(knowtree, SIGNAL(doubleClicked(const QModelIndex &)),
         this, SLOT(modify(void)));

В результате, вызов слота modify() страбатывает, но после его вызова ветка всеравно переходит в режим редактирования.


Вопрос - где и как отключить редактирование ветки по двойному клику?


Название: Re: QTreeView: как убрать редактирование ветки по двойному клику?
Отправлено: spirit от Декабрь 04, 2008, 19:45
поиграйся с QAbstractItemView::EditTriggers.


Название: Re: QTreeView: как убрать редактирование ветки по двойному клику?
Отправлено: pastor от Декабрь 04, 2008, 19:48
см. Qt::ItemFlags TreeModel::flags(const QModelIndex &index) const. и убери Qt::ItemIsEditable


Название: Re: QTreeView: как убрать редактирование ветки по двойному клику?
Отправлено: xintrea от Декабрь 04, 2008, 21:15
поиграйся с QAbstractItemView::EditTriggers.

Получилось через

Код:
knowtree->setEditTriggers(QAbstractItemView::NoEditTriggers);