Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: developer от Июль 28, 2009, 18:06



Название: Отображение дерева
Отправлено: developer от Июль 28, 2009, 18:06
Есть дерево QTreeView.  Припустим у него есть два столпца ('а' i 'б').
Все "крестики"(то-есть уровни вложения) отображаються в столпце "а" (в норме). Если "а" скрыть тогда исчезают и "крестики",  а как сделать так чтобы не исчезали.
Кстати в GTK  для етого есть только одна функция - что-то типа set_column_expanded(и оно перерисовывает ети крестики в заданном столпце).
И вот мне предоставили вызов - а что может твой Qt. Вот я и пытаюсь сказать что у Qt где-то тоже есть только одна функция - только я ее еще не нашел.
Может у кого то есть идеи.


Название: Re: Отображение дерева
Отправлено: spectre71 от Июль 28, 2009, 21:32
Есть дерево QTreeView.  Припустим у него есть два столпца ('а' i 'б').
Все "крестики"(то-есть уровни вложения) отображаються в столпце "а" (в норме). Если "а" скрыть тогда исчезают и "крестики",  а как сделать так чтобы не исчезали.
Кстати в GTK  для етого есть только одна функция - что-то типа set_column_expanded(и оно перерисовывает ети крестики в заданном столпце).
И вот мне предоставили вызов - а что может твой Qt. Вот я и пытаюсь сказать что у Qt где-то тоже есть только одна функция - только я ее еще не нашел.
Может у кого то есть идеи.
Оригинально! Крестики! Для того чтобы задать вопрос, необходимо знать половину ответа!
Если я понял ;) смотри http://www.prog.org.ru/topic_10162_0.html (http://www.prog.org.ru/topic_10162_0.html)


Название: Re: Отображение дерева
Отправлено: developer от Июль 28, 2009, 22:44
Нет ето не то, там нужно было просто переместить хедера, а теперь при сокрытии хедера с отображением дерева исчезает отображение дерева, что и есть нормально но нужно как-то переместить ето дерево на первую видимую колонку.


Название: Re: Отображение дерева
Отправлено: _OLEGator_ от Июль 28, 2009, 22:49
Ну как костыль - первую колонку создать только для "плюсов", без текста, а скрывать уже начиная со второй... Либо доку надо рыть, с ходу другого не могу предложить :)


Название: Re: Отображение дерева
Отправлено: vovan1982 от Июль 29, 2009, 09:39
А что мешает сделать "б" первой колонкой при загрузке данных в модель.
Я например сделал следующее:
Есть таблица в sql (id, parent_id, name), данные из таблици загружаю в следующем порядке, сначала "name", потом "id", потом "parent_id" в итоге крестики стоят на "name", а "id" и "parent_id" скрываю.


Название: Re: Отображение дерева
Отправлено: developer от Июль 29, 2009, 13:10
Извиняюсь за неточные данные, мы делаем дерево, потом юзер прятает ту колонку которую ему нужно, и если ето будет колонка с крестиками, то нужно ети крестики перерисовать в следующей видимой колонке.

Цитировать
Ну как костыль - первую колонку создать только для "плюсов", без текста, а скрывать уже начиная со второй... Либо доку надо рыть, с ходу другого не могу предложить Улыбающийся
Совсем не думаю что ето костыль. По моему ето неплохое решение.

Но нужно еще поискать функцию переоределениэ которой даст такой результат. ВОт и вопрос что ето за функция и как ее переопределить. Вчера смотрел есть небольшие наводки: drawRow(), drawBranches(), drawTree().  Но как ими правильно использоваться не знаю.


Название: Re: Отображение дерева
Отправлено: _OLEGator_ от Сентябрь 28, 2009, 19:37
Я имел ввиду, что первая колонка - пустая, она только для отображения "крестиков", а прятать можно только со второй колонки... Надо только запретить изменение размеров и перетаскивание этой колонки

Правда там останется вертикальная полоса, но думаю если приспичит - ее можно победить унаследовавшись от QHeaderView и переопределив рисование...