| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [QT4] TableView порядок отображения столбцов |
| Автор: ecspertiza 18.2.2009, 13:39 |
| Есть на форме компонент QTableView в нём отображаются поля базы данных, в программу необходимо добавить возможность выбора отображаемых столбцов и очерёдность, при этом при выходе из программы это всё должно сохранятся. Отображение нужных столбцов можно реализовать с помощью SQL запроса, а вот порядок? В QTableView вроде бы нельзя перетаскивать столбцы в нужное положение, как дать пользователю возможность выбирать позицию столбца? |
| Автор: Elfebet 18.2.2009, 15:18 |
| про порядок столбцов - void QHeaderView::moveSection ( int from, int to ) отоброжение нужных столбцов - void QHeaderView::setSectionHidden ( int logicalIndex, bool hide ) |
| Автор: ecspertiza 19.2.2009, 09:10 |
| Ну это я так понимаю "программное" перемещение столбцов, а вот чтобы дать пользователю возможность перетаскивать столбцы мышью, это наверное нужно будет создавать класс на основе QTableView и реализовывать механизм drag-and-drop? |
| Автор: Elfebet 19.2.2009, 10:27 | ||
| нет, это уже реализовано, в treeview это точно есть. помоему достаточно заюзать
|
| Автор: ecspertiza 19.2.2009, 11:54 | ||
что то я не до конца понимаю, делаю вот так
позиции не сохраняются, а как то перетасовываются. Где мог на грабли наступить? |
| Автор: ecspertiza 19.2.2009, 12:19 | ||
а если сохранять QList
то как его потом от туда выгрузить? |
| Автор: Elfebet 19.2.2009, 12:32 | ||
|
| Автор: ecspertiza 19.2.2009, 12:38 | ||||
а вот и неугодал, компидятор ошибку выдёт
я пробовал нечто подобное
ошибка таже. |
| Автор: SABROG 19.2.2009, 13:00 | ||
Попробуй так
|
| Автор: ecspertiza 19.2.2009, 13:07 | ||
вобщем заработало как то вот так
SABROG,Elfebet спасибо за помощь |
| Автор: SABROG 19.2.2009, 13:15 |
Решил упростить отказавшись от logicalIndex? Т.е. если пользователь захочет во время работы вернуть настройки колонок, то у него ничего не получится? |
| Автор: ecspertiza 19.2.2009, 13:22 |
| ну как бы в софте такой фичи не предусмотрено, но если захочет вернуть в дефалтово значение, то можно дописать поцедурку где в цикле visualIndex сделать равным logicalIndex, а если вернуть настройки которые были при загрузке программы то можно ещё раз вызвать процедуру LoadTableParams(). |