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

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

Страниц: 1 [2] 3 4   Вниз
  Печать  
Автор Тема: CheckBox в QHeaderView  (Прочитано 39848 раз)
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #15 : Ноябрь 20, 2009, 13:41 »

Цитировать
А при том, что при разрастании функционала никаких экранов не хватит, что-бы "заочевиднить" функцию.
Правильно учитесь писать программы.... моники не резиновые....

1) Учись правильно писать программы......
2) Как было объявлено выше другим человеком чекбокс - устоявшийся контрол которого хотят многие клиенты...
3) Я считаю что это действительно удобный контрол который не захламляет экран а уменьшает его захламление - ведь пункт меню. с надписью "Выделить все ячейки в колонке" или "Выделить колонку" - занимает в любом случае больше места - это менее интуитивно, и его надо еще и найти щелкнув правой кнопкой мыши туда куда надо! (на заголовок - а именно на горизонтальную его часть)

С другой стороны считаю что альтернативой может служить одинарный или двойной клик по заголовку столбца который надо выделить - это стандартное поведение для большинства электронных таблиц, которым можно успокоить даже клиентов которые хотят чекбоксы...
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #16 : Ноябрь 20, 2009, 15:45 »

Цитировать
плохое решение, я обычно для таких целей пользуюсь патерном посетитель:
Написал один раз обход модели, передал алгоритм или выбрал алгоритм с пом. того-же выпадающего меню и опля, везде чекбоксы расставлены или еще чего. Меньше кода писать приходится.
Причем тут паттерны? Автора интересовал вопрос построения интерффейса.....
А при том, что при разрастании функционала никаких экранов не хватит, что-бы "заочевиднить" функцию.
Правильно учитесь писать программы.... моники не резиновые....
Чекбокс в колонке хидера - это абсолютно устоявшийся GUI-контрол - масса заказчиков его хотят.
Покажи пару распространенных софтин где есть этот контрол.
Я его только раз видел, и то был прототип на дельфях, а эти хлопцы знатные извращенцы (ничего личного)....
ПС. в конце концов никто не запрещает сходить с ума, но это тупиковый путь - скрины не резиновые.
Там где множественные наборы данных всегда есть место и не одному алгоритму:
- Оптичить все
- Снять оптичивание;
- Инвертировать оптичивание;
- оптичить по условию....;
Для хейдеровв таблиц нормальными операциями считаю: поменять сортировку по клику и размер увеличить уменьшить, остальное извраты.

« Последнее редактирование: Ноябрь 20, 2009, 16:44 от panAlexey » Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #17 : Ноябрь 20, 2009, 15:55 »

...но если клиент хочет чекбокс - склонить его в сторону меню НЕ ПОЛУЧИТСЯ!
+100 за понимание психологии заказчика. Если его требования разумны (хоть как-то, не полный бред) - надо идти ему навстречу, а дебаты и препирательства ничего хорошего не приносят
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #18 : Ноябрь 20, 2009, 15:57 »

1) Учись правильно писать программы......
уже 16 лет этим занимаюсь, представление имею огромное..

2) Как было объявлено выше другим человеком чекбокс - устоявшийся контрол которого хотят многие клиенты...
я тебе много могу порасказать, что хотят клиенты и во что это потом выливается...
заказчики теперь вперед советуются, что-бы своими хотелками дров не наломать...

3) Я считаю что это действительно удобный контрол который не захламляет экран а уменьшает его захламление.
удобный спору нет, но он
1. малофункциональный
2. Неоднозначный. (однозначный только для тех кто знает какую он функцию несет).
3. Нерасширяемый (в следствие этого тупиковый).

3) Я считаю что это действительно удобный контрол который не захламляет экран а уменьшает его захламление - ведь пункт меню. с надписью "Выделить все ячейки в колонке" или "Выделить колонку" - занимает в любом случае больше места - это менее интуитивно, и его надо еще и найти щелкнув правой кнопкой мыши туда куда надо!
Дело не в экономии места, а в концепции построения интерфейса.
Вот на хабре выматерили новый интерфейс 1Сv8.2. за ненативность и прочее, хотите идти по стопам авось разберутся, ну и в добрый путь.
о понимать надо чего ты деолаешь и куда это заведет.
Сложно что-ли повесить рядом панель пиктограмм с действиями?
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #19 : Ноябрь 20, 2009, 16:02 »

...но если клиент хочет чекбокс - склонить его в сторону меню НЕ ПОЛУЧИТСЯ!
+100 за понимание психологии заказчика. Если его требования разумны (хоть как-то, не полный бред) - надо идти ему навстречу, а дебаты и препирательства ничего хорошего не приносят
и че?
-1000 за слепое удовлетворение заказчиков без оглядки на будущее.
у меня совещательный принцып работы с заказчиком:
он высказывает проблему, я ему выдаю несколько вариантов исполнения, характеризую варианты,
привожу плюсы и минусы, а потом заказчик выбирает путь решения.
особое внимание придаю прозрачности, понятности и целостности системы.
некоторые сначала принимали за истину только свои хотелки, потом сообразили, что лучше проконсультироваться.
« Последнее редактирование: Ноябрь 20, 2009, 16:04 от panAlexey » Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #20 : Ноябрь 20, 2009, 16:21 »

-1000 за слепое удовлетворение заказчиков без оглядки на будущее.
Мне лично этот чекбокс тоже не по душе, непонятно что он делает, первая мысль - колонка не значима? Но это всего лишь деталь UI, ничего "принципиального" здесь нет. Да, есть места/ситуации где нужно упираться рогом и говорить "нет" как бы клиент ни хотел, но чекбокс в хедере в их число не входит Улыбающийся
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #21 : Ноябрь 20, 2009, 16:22 »

нафлудили-то сколько и ничего по делу.
Дак как поместить "галку" в заголовок столбца?
Записан

Юра.
spbtellurian
Гость
« Ответ #22 : Ноябрь 20, 2009, 16:31 »

Господа, может уже хватит    Крутой  На пустом месте устраиваете конфликт.
Когда очевидных способов решение задачи нет любой программер начинает упираться рогом и приводить кучу доказательств в пользу тог что этого делать нельзя - лень матушка - проще найти оправдание почему это не делать чем сделать  Смеющийся

Помио описанных выше способов есть ещё два - более близких к тому что требуется.
1. Убрать заголовок вообще и вместо заголовка выводить строку с галочками. (например именно так реализована данная задача при просмторе писем в том же mail.ru)
2. Делать некую имитацию чекбокса через вывод картинок


Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #23 : Ноябрь 20, 2009, 16:37 »

-1000 за слепое удовлетворение заказчиков без оглядки на будущее.
Мне лично этот чекбокс тоже не по душе, непонятно что он делает, первая мысль - колонка не значима?
дык я о неоднозначности в том числе и говорил.
а "не по душе" он тебе просто потому что ты чуствуешь неправильность применения, а словами высказать что именно неправильно не получается.

Господа, может уже хватит    Крутой  На пустом месте устраиваете конфликт.
это не конфликт, конфликт, это когда спор по личным мотивам. а тут никто не корыстен и не уязвлен (вроде).
просто технические мотивы и принцыпы обсуждаются..
пс. согласен, от темы отклонились, но проблема многоаспектная:
например:
http://habrahabr.ru/company/turbomilk/blog/74806/
« Последнее редактирование: Ноябрь 20, 2009, 16:40 от panAlexey » Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #24 : Ноябрь 20, 2009, 16:45 »

нафлудили-то сколько и ничего по делу.Дак как поместить "галку" в заголовок столбца?
дык как нестандартное поведение делают?
наследуются и рисуют че надо.
в чем вопрос-то?
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
Hordi
Гость
« Ответ #25 : Ноябрь 20, 2009, 16:54 »

нафлудили-то сколько и ничего по делу.Дак как поместить "галку" в заголовок столбца?
дык как нестандартное поведение делают?
наследуются и рисуют че надо.
в чем вопрос-то?

Действительно... А как программа делается? Да просто, берется и пишется... Улыбающийся

Мне например непонятно почему этот чекбокс Qt не реализует, тем более что всякие Role теоретически этот элемент должна добавлять, а в реале ничего не происходит... А заказчики... ну они деньги платят, и если на все твои утверждения отвечают - ХОЧУ, то надо делать. Например, для того же QHeaderView захотели по клику по колонке чтобы менялась сортировка  ВПЕРЕД-НАЗАД-НЕТ_СОРТИРОВКИ... По мне так вполне логично, но Qt это не позволяет - приходится извращаться...
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #26 : Ноябрь 21, 2009, 02:01 »

По теме: - если совсем никак не получается, то можно сделать 2 изображения иконки checkbox-са соответственно с галочкой и без и выводить их в нужной колонке заголовка - плюс соответствующим образом обрабатывать клики по этому заголовку, соответственно проходя по реальным данным!

Оффтоп для panAlexey:
Цитировать
удобный спору нет, но он
1. малофункциональный
2. Неоднозначный. (однозначный только для тех кто знает какую он функцию несет).
3. Нерасширяемый (в следствие этого тупиковый).
1) Если вы согласились что контрол удобный то философия на тему насколько удобен и расширяем бессмыслена, зачем расширять функциональность чекбокса, который и так делает то что должен?
2) На счет неоднозначности - вранье - на скрине ниже я приложил пример использования данного контрола и сомневаюсь что хоть один человек не поймет что он делает, а иконки на тулбаре по вашему сразу всем понятны а не только тем кто уже знает какие они скрывают действия?
3) Малофункциональный - вообще тарабарщина, вы ведь не сетуете что колеса на вашей машине, из-за малой ф-сти не могут посуду мыть? А у обычной кнопки большая функциональность? а у гиперссылки? Я вам даже так скажу при условии правильной организации интерфейса из этих простых контролов получается очень гибкая и многофункциональная система - например этот самый контрол позволяет в известной почтовой системе (на скрине) одновременно удалять письма в спам, переносить и т.д. да вообщем все групповые действия одним кликом, без всяких контекстных меню!

А вообще то что вы 16 лет пишете программы для меня не является авторитетным заявлением, покажите плоды своего труда - может это система с абсолютно правильным построением интерфейса? Это вам в ответ на то что вы тыкаете мол - "учитесь писать программы" --- "сам учись", я видел плоды труда программистов работавших и более длительное время и их программы для пользователей были просто гемморой и было это по причине монополии (заказчик и исполнитель были определены политически - откатами), стоит заявлять о своих подвигах подкрепляя это реальными успехами а не количеством потраченного времени!
Записан
Sergey B.
Программист
*****
Offline Offline

Сообщений: 544



Просмотр профиля WWW
« Ответ #27 : Ноябрь 21, 2009, 09:56 »

О... шрифты...

Вот за что люблю OS X - так это за красивые шрифты Улыбающийся (люблю изящество)
Записан
uriel
Гость
« Ответ #28 : Ноябрь 21, 2009, 10:20 »

Хм, так а QHeaderView же виджет. Что мешает сделать его родителем у нужного чекбокса и просто позиционировать руками?
Я что-то подобное делал, только оно было не в самом заголовке, а над ним, но разные виджеты и для каждого столбца (для фильтрации).
Записан
Hordi
Гость
« Ответ #29 : Ноябрь 21, 2009, 11:20 »

Хм, так а QHeaderView же виджет. Что мешает сделать его родителем у нужного чекбокса и просто позиционировать руками?
Я что-то подобное делал, только оно было не в самом заголовке, а над ним, но разные виджеты и для каждого столбца (для фильтрации).

Это можно, но имеем проблемы:
1.При переносе, ресайзе колонки нужно искать этот чекбокс и переносить (т.е. связывать чекбоксы с logicalIndex).
2.При удалении колонки удалять чекбокс
3.Что-то делать с текстом колонки, чтобы чекбокс не наезжал на него.

Это все называется - прикручивать костыли! Работать будет, но некрасиво!

Берем стандартный контрол - QTreeWidget - есть чекбоксы родителей и чайлдов. Класс сам отслеживает и выставляет в tristate-checked-unchecked родительские чекбоксы, все просто и красиво...
Записан
Страниц: 1 [2] 3 4   Вверх
  Печать  
 
Перейти в:  


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