Название: Глючит выделение некорневых ветвей QTreeView... Отправлено: Cyrax от Января 09, 2008, 23:25 При выделении любой из корневых ветвей выделяется вся строка.
При попытке выделения дочерних ветвей выделение охватывает только ту часть строки, которая лежит в пределах первого столбца (т.е. выделяется только одна ячека с именем ветви/элемента). При этом ни одинарный, ни двойной клик по другим ячейкам той же строки (дочернего элемента) не выделяет ячейки, как будто там запрет стоит на выделение... Название: Re: Глючит выделение некорневых ветвей QTreeView... Отправлено: Mikhail от Января 10, 2008, 12:21 При выделении любой из корневых ветвей выделяется вся строка. При попытке выделения дочерних ветвей выделение охватывает только ту часть строки, которая лежит в пределах первого столбца (т.е. выделяется только одна ячека с именем ветви/элемента). При этом ни одинарный, ни двойной клик по другим ячейкам той же строки (дочернего элемента) не выделяет ячейки, как будто там запрет стоит на выделение... Что же тебя все глючит. Читай документацию. Проверь свойство allColumnsShowFocus. По умолчанию оно - false. Установи в true - и будут выделяться все колонки. Название: Re: Глючит выделение некорневых ветвей QTreeView... Отправлено: Cyrax от Января 10, 2008, 15:54 Цитировать Что же тебя все глючит. У меня всё глючит...Цитировать Проверь свойство allColumnsShowFocus. Спасибо, проверю...По умолчанию оно - false. Установи в true - и будут выделяться все колонки. Название: Re: Глючит выделение некорневых ветвей QTreeView... Отправлено: Cyrax от Января 10, 2008, 16:38 Цитировать Проверь свойство allColumnsShowFocus. Нифига. Теперь только серой рамкой вся строка окаймляется. Но синим цветом выделена по-прежнему только часть, ограниченная первым столбцом.По умолчанию оно - false. Установи в true - и будут выделяться все колонки. Тогда как для родительских элементов проблем с выделением нет... Название: Re: Глючит выделение некорневых ветвей QTreeView... Отправлено: Mikhail от Января 10, 2008, 19:41 Цитировать Проверь свойство allColumnsShowFocus. Нифига. Теперь только серой рамкой вся строка окаймляется. Но синим цветом выделена по-прежнему только часть, ограниченная первым столбцом.По умолчанию оно - false. Установи в true - и будут выделяться все колонки. Тогда как для родительских элементов проблем с выделением нет... Вообще то надо код показать. Что то ты намудрил. Смотри пример с QTreeView - все работает как тебе и надо - $(QTDIR)/examples/itemviews/dirview. Название: Re: Глючит выделение некорневых ветвей QTreeView... Отправлено: Cyrax от Января 10, 2008, 22:12 Цитировать Смотри пример с QTreeView - все работает как тебе и надо - $(QTDIR)/examples/itemviews/dirview Нет. Там готовый компонент QDir используется. А вмоём случае - QTreeVew.Взял пример regexpparser из книги "Qt4: Программирование GUI на C++" (10 глава, раздел "Реализация пользовательских моделей"). Добавил в код команду Цитировать treeView->setAllColumnsShowFocus(true); Получаю тот же результат, что и у меня...В attach'е исходники и картинка. Название: Re: Глючит выделение некорневых ветвей QTreeView... Отправлено: Mikhail от Января 10, 2008, 22:18 Цитировать Смотри пример с QTreeView - все работает как тебе и надо - $(QTDIR)/examples/itemviews/dirview Нет. Там готовый компонент QDir используется. А вмоём случае - QTreeVew.Взял пример regexpparser из книги "Qt4: Программирование GUI на C++" (10 глава, раздел "Реализация пользовательских моделей"). Добавил в код команду Цитировать treeView->setAllColumnsShowFocus(true); Получаю тот же результат, что и у меня...В attach'е исходники и картинка. Смотри внимательно. Используется имнно QTreeView, а QDir нет , есть модель QDirModel. Но она только предоставляет данные, а отображение - QTreeView. Скорее всего у тебя редактируемые поя прописаны, и из-за этого чехарда. Название: Re: Глючит выделение некорневых ветвей QTreeView... Отправлено: Cyrax от Января 10, 2008, 23:34 Цитировать Скорее всего у тебя редактируемые поя прописаны, и из-за этого чехарда. Что значит, редактируемые поля прописаны ?У меня флаг редактирования для полей не установлен, также, как и в примере в attach'е. Михаил, посмотри пример из attach'а и укажи причину такого поведения при выделении дочерних строк в этом примере. Всё же в том примере разбираться проще, чем в моей программе. Там - абсолютно та же проблема, что и у меня.... Название: Re: Глючит выделение некорневых ветвей QTreeView... Отправлено: pastor от Января 11, 2008, 02:06 setSelectionBehavior(QAbstractItemView::SelectRows) то что нужно.
Название: Re: Глючит выделение некорневых ветвей QTreeView... Отправлено: Cyrax от Января 11, 2008, 13:14 Цитировать setSelectionBehavior(QAbstractItemView::SelectRows) то что нужно. Абсолютно никакого эффекта:Цитировать ui.FAPAttributesView->setSelectionBehavior(QAbstractItemView::SelectRows); При этом если указать QAbstractItemView::SelectColumnts, то выделение действительно начинает охватывать весь столбец (в пределах родителя), если указать QAbstractItemView::SelectItems, то выделяется одна ячейка в любом месте (при этом серой рамки вокруг всего ряда нет). Как и должно быть. А вот в случае с QAbstractItemView::SelectRows по прежнему серая рамка - вокруг всего ряда, а синее выделение - только в пределах первого столбца. Напрашивается, что это QTreeView такой галимый... Страшно галимый... Странно, что никто этого раньше не замечал. Вроде бы с QTreeView многие работали... Название: Re: Глючит выделение некорневых ветвей QTreeView... Отправлено: pastor от Января 11, 2008, 16:57 Цитировать setSelectionBehavior(QAbstractItemView::SelectRows) то что нужно. Абсолютно никакого эффекта:А вот это ужо не правда!. Все прекрасно работает: Код: QStandardItemModel model(0, 3); Какая версия Qt? Код создания дерева в студию. Название: Re: Глючит выделение некорневых ветвей QTreeView... Отправлено: Cyrax от Января 11, 2008, 22:53 pastor, у тебя это QStandartItemModel. У меня же представление отдельно.
Так может и работает, но у меня не работает: Цитировать ui.FAPAttributesView->setModel(this->FAPAttributesModel); ui.FAPAttributesView->setSelectionBehavior(QAbstractItemView::SelectRows); ui.FAPAttributesView->setAllColumnsShowFocus(true); ui.FAPAttributesView->setAnimated(true); ui.FAPAttributesView->collapseAll(); ui.FAPAttributesView->expandAll(); Ничего особенного. Так можно бесконечно гадать над причинами глюка. Единственная возможность прояснить ситуацию - взять исходники regexpparser'а (несколько постов назад) и изменить их код так, чтобы выделение там стало нормальным. Сейчас там та же проблема, что и у меня... Название: Re: Глючит выделение некорневых ветвей QTreeView... Отправлено: ритт от Января 12, 2008, 18:12 с кустандартайтеммодель работает нормально - стоило бы отнаследоваться от неё, а не от абстрактной модели (если задача схожа по простоте с регэксппарсером)...
если кликать по второму столбцу, то выделение устанавливается только для корневой ноды, а для дочерних - только фокус без выделения строки в первом столбце - стоит проверить как селекшионмодель реагирует на селектРов и т.п. почти уверен, что это - не баг троллей |