Russian Qt Forum
Май 19, 2024, 11:24 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Своя сортировка в QTreeWidget / custom sorting  (Прочитано 8917 раз)
Ytz
Гость
« : Июль 08, 2008, 20:55 »

Всем привет!
Имеется QTreeWidget, свой класс с фильтрами и сортировкой из которого надо просто перекидывать данные в QTreeWidget. В связи с этим очень хотелось бы просто у себя в классе унаследованном от QTreeWidget переопределить какую нибудь функцию типа sort и при каждом щелчке пользователя по заголовку обрабатывать самостоятельно это событие. К сожалению ничего похожего не нашел, предлагают создать свою ProxyModel/переопределить операторы сравнения, но мне это не нужно - хочу простоты. Кто нибудь решал подобное?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Июль 09, 2008, 09:51 »

ProxyModel - очень просто. Улыбающийся
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Ytz
Гость
« Ответ #2 : Июль 09, 2008, 10:39 »

Мой класс он сам как прокси - формирует данные по запросу уже отсортированные как надо, так что использование ProxyModel излишне  Грустный
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Июль 09, 2008, 11:42 »

Что-то все у тебя запутано.... Скорее всего у тебя изначальная задумка не верна. Попробуй подробно изложить суть задачи и то как ты ее пытаешься решить.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Ytz
Гость
« Ответ #4 : Июль 09, 2008, 11:48 »

Короче вся логика программы написана с учетом того, что в самом GUI логики быть не должно вообще. Поэтому виджет для отображения используются только для отображения, вся работа происходит в ядре, от GUI только идет запрос в ядро типа выбрать то-то и то-то и вот так отсортировать, а ядро в свою очередь возвращает готовую структуру которую просто надо тупо вывести на экран и все. В этом случае QT-шные контролы слишком умные.
Записан
Alex03
Гость
« Ответ #5 : Июль 09, 2008, 12:10 »

Ну так сделай свой класс моделью, или промежуточную модель которая будет брать данные с твоего класса. А уже эту модель подсунь в QTreeView (не путать QTreeWidget, который по сути тот же QTreeView только со стандартной моделью внутри).
Записан
Ytz
Гость
« Ответ #6 : Июль 09, 2008, 20:43 »

Всем спасибо. Написал свой QStandardItemModel и правда просто и логично Улыбающийся
Записан
ритт
Гость
« Ответ #7 : Июль 09, 2008, 20:45 »

а на базе абстрактной модели было бы ещё и быстрее Улыбающийся
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #8 : Июль 09, 2008, 22:51 »

а на базе абстрактной модели было бы ещё и быстрее Улыбающийся

+100
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Hort
Гость
« Ответ #9 : Июль 09, 2008, 23:23 »

а на базе абстрактной модели было бы ещё и быстрее Улыбающийся
а я не разобрался как реализовать методы index() и parent(). в Шлее про них 2 слова =(. а с английским я не очень дружу чтобы все понять что в документации написано, мне проще глянуть на конкретный пример (но в ассистенте этого не нашел).
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #10 : Июль 09, 2008, 23:54 »

а я не разобрался как реализовать методы index() и parent(). в Шлее про них 2 слова =(. а с английским я не очень дружу чтобы все понять что в документации написано, мне проще глянуть на конкретный пример (но в ассистенте этого не нашел).

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

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Hort
Гость
« Ответ #11 : Июль 10, 2008, 00:22 »

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

PS: ура! разобрался. и на радостях написал свой класс. simpletreemodel оказалась как раз то что мне надо.
« Последнее редактирование: Июль 10, 2008, 03:25 от Hort » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.044 секунд. Запросов: 20.