Название: Расширение для QTableView Отправлено: danius от Июль 02, 2009, 02:05 Вот сделал на коленке, сохраняет порядок и набор столбцов. Но для одной таблицы, сорри времени править пока нет. Буду рад commit'ам. http://bitbucket.org/danius/x3tableview/ (http://bitbucket.org/danius/x3tableview/)
Название: Re: Расширение для QTableView Отправлено: Rcus от Июль 02, 2009, 06:49 Очень похоже на меню Dolphin, правда такой велосипед есть в мало-мальски приличном KDE приложении :)
Я тоже как-то такое делал, только правда в силу своей неприязни к наследованию сделано это было через композицию объектов :) Название: Re: Расширение для QTableView Отправлено: danius от Июль 02, 2009, 12:47 Будь любезен скажи где именно есть что-то подобное, нет желания изобретать велосипед
Название: Re: Расширение для QTableView Отправлено: break от Июль 02, 2009, 13:53 А мне кажется там наследование и не нужно - а нужен внешний класс которому передается указатель на потомка QTableView - а он уже умеет сохранять колонки (можно также передавать указатель на свой QSettings - у меня есть такой для XML). Кроме того этот класс может уметь выводить диалоговое окно "Настройка колонок" в котором пользователь галочками выбирает видимые колонки и стрелочками меняет их положение - это как раз спасет если все колонки были выключены. Кроме того это класс можно заставить по очереди натравливаться на все таблицы формы при ее закрытии чтобы сохранить положение колонок всех таблиц - то есть автоматически получается работа с несколькими таблицами. И еще неприятный фактор наследования - если я возьму другой наследник QTableView - то с эти уже не получится работать. Наследование здесь точно не нужно. Т.к. сохранялка колонок не реализована посредством "QTableView" - а лишь использует ее данные.
Название: Re: Расширение для QTableView Отправлено: danius от Июль 03, 2009, 12:05 Возможно это так, но единственный разумный довод для этого
Цитировать И еще неприятный фактор наследования - если я возьму другой наследник QTableView - то с эти уже не получится работать. Всё остальное можно реализовать и так.Цитировать класс может уметь выводить диалоговое окно "Настройка колонок" Идея была как раз в том, что бы не выводить диалоговое окно, а перемещать колонки можно drag&drop.Что касается сохранения настроек для разных таблиц, то можно сохранять их допустим QSettings по пути `x3tableview/имя_таблицы'. Название: Re: Расширение для QTableView Отправлено: break от Июль 03, 2009, 17:36 Цитировать Идея была как раз в том, что бы не выводить диалоговое окно Плохая идея. Если колонок много а монитор узкий - пользователю надо сначала догадаться подвигать скроллбар, тчобы найти нужную колонку, потом попасть щелчком по ней для отключения? И опять же если все выключить как включать. А если выводить контекстное меню с галочками напротив имен колонок при щелчке по таблице - опять же не всегда удобно т.к. для показа/спрятывания 1 колонки прийдется щелкать 1 раз - N колонок N раз. Вметсо того чтобы в нормальном окошке 1 раз все настроить видя нормальный список колонок. Цитировать Всё остальное можно реализовать и так. Да можно много чего делать и так и сяк. Но наследование нужно применять только там где это необходимо - то есть там где наследник "Реализован посредством предка", иначе использовать его нельзя. Я уже много раз видел как наследование заводит в тупик. Оно устанавливает слишком тесные связи между частями программы - так что потом не отвертишься. Множественное наследование - так вообще лучше использовать только для реализации интерфейсных классов - там еще больше подводных камней. Уж для вашей задачи оно точно не к чему. И при чем тут QSettings - речь о том что по закрытию программы можно организовать цикл, кот. пройдет по всем табличкам - то есть пройдет вообще по всем компонентам, определит что это QTableView и автоматом сохранит колонки - хоть в QSettings хоть еще куда. А если сохранением занимается сам наследник QTableView - то все таблички формы должны быть заменены на него - то есть уже больше проблем - а если у меня 40 окон с табличками... - даже учитывая возможность ручной правки (по поиску и замене) уишника - все равно напряжно... |