![]() |
|
|
![]()
|
|
| ecspertiza |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 3.11.2008 Где: г.Смоленск Репутация: 4 Всего: 5 |
Есть на форме компонент QTableView в нём отображаются поля базы данных, в программу необходимо добавить возможность выбора отображаемых столбцов и очерёдность, при этом при выходе из программы это всё должно сохранятся. Отображение нужных столбцов можно реализовать с помощью SQL запроса, а вот порядок? В QTableView вроде бы нельзя перетаскивать столбцы в нужное положение, как дать пользователю возможность выбирать позицию столбца?
|
|||
|
||||
| Elfebet |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 545 Регистрация: 15.5.2006 Где: Украина. Запорожь е. Репутация: 5 Всего: 14 |
про порядок столбцов - void QHeaderView::moveSection ( int from, int to )
отоброжение нужных столбцов - void QHeaderView::setSectionHidden ( int logicalIndex, bool hide ) -------------------- Программист не должен всё знать... он должен знать где можно посмотреть |
|||
|
||||
| SABROG |
|
||||||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Не верю
Соответственно далее QSettings, куда записывается поочередность столбцов для таблицы.
Тут номера это индекс полей для QSqlQuery::value(index i). Т.е. даже, если у тебя там 30 колонок, то в таблицу можно вывести 6 в нужном порядке. Значения в QSettings передаются как QVariant тип, а он может содержать списки (QList/QStringList), т.ч. можно сначала заполнить список как тебе нужно, а потом его сохранить. Вроде как StrongDC тоже в xml'е сохраняет позицию колонок. Это сообщение отредактировал(а) SABROG - 18.2.2009, 15:42 |
||||||
|
|||||||
| ecspertiza |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 3.11.2008 Где: г.Смоленск Репутация: 4 Всего: 5 |
Ну это я так понимаю "программное" перемещение столбцов, а вот чтобы дать пользователю возможность перетаскивать столбцы мышью, это наверное нужно будет создавать класс на основе QTableView и реализовывать механизм drag-and-drop?
|
|||
|
||||
| Elfebet |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 545 Регистрация: 15.5.2006 Где: Украина. Запорожь е. Репутация: 5 Всего: 14 |
нет, это уже реализовано, в treeview это точно есть.
помоему достаточно заюзать
-------------------- Программист не должен всё знать... он должен знать где можно посмотреть |
|||
|
||||
| ecspertiza |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 3.11.2008 Где: г.Смоленск Репутация: 4 Всего: 5 |
что то я не до конца понимаю, делаю вот так
позиции не сохраняются, а как то перетасовываются. Где мог на грабли наступить? |
|||
|
||||
| ecspertiza |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 3.11.2008 Где: г.Смоленск Репутация: 4 Всего: 5 |
а если сохранять QList
то как его потом от туда выгрузить? |
|||
|
||||
| Elfebet |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 545 Регистрация: 15.5.2006 Где: Украина. Запорожь е. Репутация: 5 Всего: 14 |
Это сообщение отредактировал(а) Elfebet - 19.2.2009, 12:33 -------------------- Программист не должен всё знать... он должен знать где можно посмотреть |
|||
|
||||
| ecspertiza |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 3.11.2008 Где: г.Смоленск Репутация: 4 Всего: 5 |
а вот и неугодал, компидятор ошибку выдёт
я пробовал нечто подобное
ошибка таже. |
||||
|
|||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Попробуй так
Это сообщение отредактировал(а) SABROG - 19.2.2009, 13:02 |
|||
|
||||
| ecspertiza |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 3.11.2008 Где: г.Смоленск Репутация: 4 Всего: 5 |
вобщем заработало как то вот так
SABROG,Elfebet спасибо за помощь |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Решил упростить отказавшись от logicalIndex? Т.е. если пользователь захочет во время работы вернуть настройки колонок, то у него ничего не получится? |
|||
|
||||
| ecspertiza |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 3.11.2008 Где: г.Смоленск Репутация: 4 Всего: 5 |
ну как бы в софте такой фичи не предусмотрено, но если захочет вернуть в дефалтово значение, то можно дописать поцедурку где в цикле visualIndex сделать равным logicalIndex, а если вернуть настройки которые были при загрузке программы то можно ещё раз вызвать процедуру LoadTableParams().
|
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |