Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Ytz от Июль 08, 2008, 20:55



Название: Своя сортировка в QTreeWidget / custom sorting
Отправлено: Ytz от Июль 08, 2008, 20:55
Всем привет!
Имеется QTreeWidget, свой класс с фильтрами и сортировкой из которого надо просто перекидывать данные в QTreeWidget. В связи с этим очень хотелось бы просто у себя в классе унаследованном от QTreeWidget переопределить какую нибудь функцию типа sort и при каждом щелчке пользователя по заголовку обрабатывать самостоятельно это событие. К сожалению ничего похожего не нашел, предлагают создать свою ProxyModel/переопределить операторы сравнения, но мне это не нужно - хочу простоты. Кто нибудь решал подобное?


Название: Re: Своя сортировка в QTreeWidget / custom sorting
Отправлено: Пантер от Июль 09, 2008, 09:51
ProxyModel - очень просто. :)


Название: Re: Своя сортировка в QTreeWidget / custom sorting
Отправлено: Ytz от Июль 09, 2008, 10:39
Мой класс он сам как прокси - формирует данные по запросу уже отсортированные как надо, так что использование ProxyModel излишне  :(


Название: Re: Своя сортировка в QTreeWidget / custom sorting
Отправлено: Пантер от Июль 09, 2008, 11:42
Что-то все у тебя запутано.... Скорее всего у тебя изначальная задумка не верна. Попробуй подробно изложить суть задачи и то как ты ее пытаешься решить.


Название: Re: Своя сортировка в QTreeWidget / custom sorting
Отправлено: Ytz от Июль 09, 2008, 11:48
Короче вся логика программы написана с учетом того, что в самом GUI логики быть не должно вообще. Поэтому виджет для отображения используются только для отображения, вся работа происходит в ядре, от GUI только идет запрос в ядро типа выбрать то-то и то-то и вот так отсортировать, а ядро в свою очередь возвращает готовую структуру которую просто надо тупо вывести на экран и все. В этом случае QT-шные контролы слишком умные.


Название: Re: Своя сортировка в QTreeWidget / custom sorting
Отправлено: Alex03 от Июль 09, 2008, 12:10
Ну так сделай свой класс моделью, или промежуточную модель которая будет брать данные с твоего класса. А уже эту модель подсунь в QTreeView (не путать QTreeWidget, который по сути тот же QTreeView только со стандартной моделью внутри).


Название: Re: Своя сортировка в QTreeWidget / custom sorting
Отправлено: Ytz от Июль 09, 2008, 20:43
Всем спасибо. Написал свой QStandardItemModel и правда просто и логично :)


Название: Re: Своя сортировка в QTreeWidget / custom sorting
Отправлено: ритт от Июль 09, 2008, 20:45
а на базе абстрактной модели было бы ещё и быстрее :)


Название: Re: Своя сортировка в QTreeWidget / custom sorting
Отправлено: pastor от Июль 09, 2008, 22:51
а на базе абстрактной модели было бы ещё и быстрее :)

+100


Название: Re: Своя сортировка в QTreeWidget / custom sorting
Отправлено: Hort от Июль 09, 2008, 23:23
а на базе абстрактной модели было бы ещё и быстрее :)
а я не разобрался как реализовать методы index() и parent(). в Шлее про них 2 слова =(. а с английским я не очень дружу чтобы все понять что в документации написано, мне проще глянуть на конкретный пример (но в ассистенте этого не нашел).


Название: Re: Своя сортировка в QTreeWidget / custom sorting
Отправлено: pastor от Июль 09, 2008, 23:54
а я не разобрался как реализовать методы index() и parent(). в Шлее про них 2 слова =(. а с английским я не очень дружу чтобы все понять что в документации написано, мне проще глянуть на конкретный пример (но в ассистенте этого не нашел).

Например можно посмотреть примеры из examples/itemviews/ такие как editabletreemodel, simpletreemodel и simpledommodel. В этих примерах создаються свои модели на базе QAbstractItemModel


Название: Re: Своя сортировка в QTreeWidget / custom sorting
Отправлено: Hort от Июль 10, 2008, 00:22
Например можно посмотреть примеры из examples/itemviews/ такие как editabletreemodel, simpletreemodel и simpledommodel. В этих примерах создаються свои модели на базе QAbstractItemModel
большое спаибо! погляжу :o

PS: ура! разобрался. и на радостях написал свой класс. simpletreemodel оказалась как раз то что мне надо.