Событие изменения выделения в QListView |
Здравствуйте, гость ( Вход | Регистрация )
Событие изменения выделения в QListView |
Begemot |
21.5.2010, 18:21
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 13 Регистрация: 15.5.2010 Пользователь №: 1718 Спасибо сказали: 0 раз(а) Репутация: 0 |
Чувствую себя полным идиотом но уже больше часа не могу найти как отловить момент изменения текущий выбранной строки в QListView. Использую QSqlRelationalTableModel, все вроде просто
Для Q*Widgets есть сигнал currentItemChanged, но для view нету, как быть? |
|
|
MoPDoBoPoT |
21.5.2010, 18:32
Сообщение
#2
|
Участник Группа: Участник Сообщений: 172 Регистрация: 7.5.2009 Из: Москва Пользователь №: 738 Спасибо сказали: 44 раз(а) Репутация: 9 |
QItemSelectionModel *QAbstractItemView::selectionModel() + void QItemSelectionModel::currentChanged( const QModelIndex & current, const QModelIndex & previous ) [signal]
м? |
|
|
Begemot |
21.5.2010, 23:03
Сообщение
#3
|
Студент Группа: Новичок Сообщений: 13 Регистрация: 15.5.2010 Пользователь №: 1718 Спасибо сказали: 0 раз(а) Репутация: 0 |
Спасибо, оно самое Может пользуясь случаем еще подскажите как более правильно поступить. Задача такая надо вывести список (поэтому использую QListView), дальше в этом списке будет поддержка фильтрации и сортировки. Но список должен быть кастомным - то есть содержимое каждой строки это конкатенация данных их двух полей базы данных. причем второе поле это индекс связанной таблицы... + при изменении выделения в списке нужно знать ID выбранной строки, что бы корректно отразить данные в соседних элементах. Если я правильно понимаю мне придется писать свой наследник делегата, что бы получать данных из двух полей форматировати и хитро отображать их . А как быть с моделью данных? Я пока вижу два пути - использовать стандартную QSqlRelationalTableModel и каким-то образом получать из нее текст двух полей + id когда надо или писать свою собственную модель которая будет сама вытягивать с базы все данные хранить их в 2х списках строк\векторе и отдавать данные в зависимости от роли. Посоветуйте какой из подходов более правильный, или может один просто невозможен? |
|
|
Begemot |
22.5.2010, 9:30
Сообщение
#4
|
Студент Группа: Новичок Сообщений: 13 Регистрация: 15.5.2010 Пользователь №: 1718 Спасибо сказали: 0 раз(а) Репутация: 0 |
Попробовал реализовать первый путь, с использованием QSqlRelationalTableModel и ручным получением данных, работает, пока на нем и остановлюсь.
|
|
|
MoPDoBoPoT |
22.5.2010, 13:02
Сообщение
#5
|
Участник Группа: Участник Сообщений: 172 Регистрация: 7.5.2009 Из: Москва Пользователь №: 738 Спасибо сказали: 44 раз(а) Репутация: 9 |
Как вариант, можно из БД в модель тянуть 2 столбца, а отображать только нужный (QListView::setModelColumn(int column)). Этот "индекс связанной таблицы" (внешний ключ, как я понял) будет браться из соседнего столбца, или можно к модели прикрутить для этого специальный метод типа foreignKey(int row).
|
|
|
Текстовая версия | Сейчас: 19.4.2024, 6:15 |