2 таблицы, реляционная модель и QComboBox |
Здравствуйте, гость ( Вход | Регистрация )
2 таблицы, реляционная модель и QComboBox |
Rocky |
1.2.2011, 20:23
Сообщение
#1
|
Старейший участник Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: 7 |
Всем привет!
Вот столкнулся с определенными трудностями, и не понимаю как их преодолеть.. Есть 2 таблицы. Они связаны друг с другом через ключ. В 1-й таблице 2 столбца (ID, value), во 2-й - 3 (ID, foreign_ID, value). Данные из первой таблицы добавляю в 1-й QComboBox так:
2-й QComboBox для 2-й таблицы формирую так:
А как мне поставить фильтр на 2-й QComboBox чтобы в нем отображались записи только для тех пар (ID, value), которые являюются текущими в 1-м комбобоксе? Еслиб это были таблицы QTableView - тут все просто. 1-я колонка это и есть внутренние ID таблиц. А как мне узнать, какой ID 1-й таблицы выбран на данный момент в 1-м комбобоксе? ---- UPD Потому что в 1-й комбобокс выводится только 2-й столбец 1-й таблицы - т.е. values.... И как в таком случае узнать, что за ID 1-й таблицы соответствует выводимый (QComboBox::currentText(...)) текст в этом 1-м комбобоксе... Спасибо! Сообщение отредактировал Rocky - 1.2.2011, 22:07 |
|
|
abc |
1.2.2011, 22:26
Сообщение
#2
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
узнать id можно так:
QModelIndex index=comboBox->model()->index(comboBox->currentIndex(),0); QString id=comboBox->model()->data(index).toString(); |
|
|
xls |
1.2.2011, 22:51
Сообщение
#3
|
Студент Группа: Участник Сообщений: 44 Регистрация: 6.9.2010 Пользователь №: 2013 Спасибо сказали: 7 раз(а) Репутация: 2 |
А как мне поставить фильтр на 2-й QComboBox чтобы в нем отображались записи только для тех пар (ID, value), которые являюются текущими в 1-м комбобоксе? Еслиб это были таблицы QTableView - тут все просто. 1-я колонка это и есть внутренние ID таблиц. А как мне узнать, какой ID 1-й таблицы выбран на данный момент в 1-м комбобоксе? Попробуй setFilterKeyColumn и setFilterFixedString у QSortFilterProxyModel. |
|
|
Rocky |
2.2.2011, 8:34
Сообщение
#4
|
Старейший участник Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: 7 |
Пока сделал как abc написал - работает =)
xls, а можно плиз по-подробнее, до меня не доходит... Как я должен задавать эту QSortFilterProxyModel? Ведь у комбобокса уже есть модель - QSqlRelationalTableModel... |
|
|
xls |
2.2.2011, 13:38
Сообщение
#5
|
Студент Группа: Участник Сообщений: 44 Регистрация: 6.9.2010 Пользователь №: 2013 Спасибо сказали: 7 раз(а) Репутация: 2 |
xls, а можно плиз по-подробнее, до меня не доходит... Как я должен задавать эту QSortFilterProxyModel? Ведь у комбобокса уже есть модель - QSqlRelationalTableModel... QSortFilterProxyModel задается как модель для 2-го комбо - при этом исходная QSqlRelationalTableModel устанавливается как исходная для прокси-модели через setSourceModel. Это позволяет не перечитывать вторую модель, а просто фильтровать однажды считанные данные... |
|
|
Текстовая версия | Сейчас: 27.12.2024, 5:02 |