Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: ритт от Декабрь 07, 2007, 02:10



Название: множественная сортировка в таблицах
Отправлено: ритт от Декабрь 07, 2007, 02:10
есть потребность дать возможность пользователю сортировать данные в таблице по нескольким столбцам
технически это реализуемо: модель с расширенным методом сорт/сетСорт, хидервью со своей обработкой и отрисовкой нескольких стрелочек сортировки и слегка подправленная таблвью...
но вопрос даже не столько в этом. дело в том, что нет единой (привычной) модели множественной сортировки.

например, в экселе есть диалог, в котором можно указать три позиции сортировки; на некоторых сайтах используется набор комбобоксов для тех жже целей; и т.д.

у нас же можно просто кликать по заголовкам столбцов, удерживая какую-нибудь клавишу-модификатор...но это неочевидно. а, раз неочевидно, скорее всего, этим не будут пользоваться. тогда на хрена писать это?

вот такой вот диалог самого с собой :)

у кого есть идеи, а лучше, реализации, прошедшие тестирование конечным пользоватеем?
код также приветствуется :)


Название: Re: множественная сортировка в таблицах
Отправлено: der от Декабрь 07, 2007, 05:48
Сам не делал, кода нет. Мнение пользователя.
Офис - пакет, с которого можно не боясь сдирать практически всё. Даже если в нём что-то сделано не самым лучшим способом, можно быть уверенным, что народ к этому уже привык.

Сортировка, по-моему, сделана удачно(2003) - только выбор столбцы/строки я бы перенёс в основной диалог.
Хоткеи хуже: надо читать хелп, а для меня эта задача непосильна :)
ИМХО.


Название: Re: множественная сортировка в таблицах
Отправлено: ритт от Декабрь 07, 2007, 06:42
диалог-диалогом...если ничего не придумается, примерно так и сделаю
но хочется чего-то удобного, а не просто привычного

несколько уточню: например, выбираем за клавишу-модификатор Shift. то есть, кликаем на столбце - сортируется...удерживая шифт, кликаем на втором столбце - сортируется по первому, затем по второму...
хочу, чтобы данные в первом столбце сортировались по возрастанию, а во втором по убыванию /* а в третьем - ещё как-нибудь :) */ - кликаю с шифтом на втором столбце 2 раза
удобно? - вроде бы, да, но...

возможно, я зря беспокоюсь и такой подход воспримется юзверями на ура
возможно, и не зря

вот и спрашиваю совета


Название: Re: множественная сортировка в таблицах
Отправлено: der от Декабрь 07, 2007, 07:40
Ну если юзеров пятеро - можно рассказать.
Если пятьсот - уже сложнее.


Название: Re: множественная сортировка в таблицах
Отправлено: Alex03 от Декабрь 07, 2007, 08:07
тултип в подсказку. :)
А вообще вариантов д.б. много.
т.е.
- по простому нажатию стандартное поведение.
- по нажатию с кнопкой модификатором своё.
- по нажатию правой кнопки мыши менюха.
- и т.д.


Название: Re: множественная сортировка в таблицах
Отправлено: Tonal от Декабрь 07, 2007, 08:09
С модификатором по моему удачно. :-)


Название: Re: множественная сортировка в таблицах
Отправлено: Dodge от Декабрь 07, 2007, 13:50
ИМХО наилудший вариант добавить в заголовок каждой колонки - кнопочку( например в виде небольшого кружка в правом нижнем углу ), при нажатии на которую, выпадает миню & можно выбрать направление сортировки, и увеличить/уменьшить глубину( порядок ), причем можно даже не делать пропуск уже имеющегося порядка.
В зависимости от направления сортировки кнопочка из кружочка превращается в соответствующую стрелочку(вверх/вниз), а порядок пишется циферкай  :P

типа:
*------------------*------------------*
|         Имя            |       Фамилия      |
|                     ^1 |                      o  |
*------------------*------------------*
Как рисунок?  ;D


Название: Re: множественная сортировка в таблицах
Отправлено: ритт от Декабрь 07, 2007, 15:41
я бы (как пользователь) на кружочки не повёлся
а вот циферя в дополнение к стрелочке мне нравится - удачная мысля

классный рисунок...нет желания написать стиль под кутэ в концепции нкурсесз? :)


Название: Re: множественная сортировка в таблицах
Отправлено: Racheengel от Декабрь 07, 2007, 22:09
мы делали подобную штуку.
для этого, создали дополнительный виджет - наследник QHeaderView, который задавал порядок сортировки (в секциях отображал соотв. колонки в том порядке, в котором надо их сортить), с возможностью тягания хедеров, драг-дропа колонок на него, плюс диалог со списком чекбоксов по правой кнопке мыши. Ну а направление сортировки определялось стандартным значком на хэдере колонки.


Название: Re: множественная сортировка в таблицах
Отправлено: ритт от Декабрь 08, 2007, 01:46
Racheengel, не покажусь сильно наглым, если попрошу сырец этого наследника? :)
времени мало, сдаваться скоро - был бы благодарен...если не жалко


Название: Re: множественная сортировка в таблицах
Отправлено: Racheengel от Декабрь 08, 2007, 11:39
Да мне не жалко - просто этот класс сильно уж связан с нашим проектом (нестандартная таблица).
Придется многое повыкидывать/заменить.
Куда слать то?


Название: Re: множественная сортировка в таблицах
Отправлено: vipet от Декабрь 08, 2007, 14:02
Racheengel,

выложи на обменник какой-нибудь (rapidshare)


Название: Re: множественная сортировка в таблицах
Отправлено: ритт от Декабрь 08, 2007, 16:55
повыкидывать/заменить чаще бывает быстрее, чем написать заново :)
angry-kasyan[at]narod[dot]ru


Название: Re: множественная сортировка в таблицах
Отправлено: Racheengel от Декабрь 08, 2007, 23:37
http://www.ii-system.com/table.tree.zip


Название: Re: множественная сортировка в таблицах
Отправлено: ритт от Декабрь 08, 2007, 23:42
не пускает на фтп, к сожалению
а по хттп такого пути нет


Название: Re: множественная сортировка в таблицах
Отправлено: ритт от Декабрь 09, 2007, 10:42
Racheengel,
благодарствую...пойду разбираться что там к чему
зная твоё отношение ко всяческим лицензиям, предвосхищаю, что код можно править и переиздавать как угодно и ничего мне за это не будет? :)


Название: Re: множественная сортировка в таблицах
Отправлено: Racheengel от Декабрь 09, 2007, 11:58
Да не за что :)
Единственная просьба - все копирайты из кода повыкидывать (просто это кусок из коммерческого проекта).