Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
Флинт |
31.10.2011, 9:19
Сообщение
#1
|
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 1.10.2011 Пользователь №: 2919 Спасибо сказали: 0 раз(а) Репутация: 0
|
Есть две модели, основная, наследник от QSqlQueryModel и промежуточная для фильтрации элементов QSortFilterProxyModel. Вопрос: как мне получить указатель на текущую модель, которую отображает представление? Метод model() у представления возвращает указатель типа QAbstractItemModel, а что с ним делать дальше? Что-то я запутался.
|
|
|
|
|
ssoft |
31.10.2011, 9:31
Сообщение
#2
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 130 Регистрация: 17.2.2010 Из: Москва Пользователь №: 1470 Спасибо сказали: 30 раз(а) Репутация: 3
|
Цитата(Флинт @ 31.10.2011, 10:19) Link Метод model() у представления возвращает указатель типа QAbstractItemModel, а что с ним делать дальше? Что-то я запутался. Можно так или так Главное не забыть определить макрос Q_OBJECT в классе MyModel. |
|
|
|
|
DOGG |
31.10.2011, 9:51
Сообщение
#3
|
![]() Студент ![]() Группа: Участник Сообщений: 44 Регистрация: 9.8.2011 Из: Калининград Пользователь №: 2798 Спасибо сказали: 6 раз(а) Репутация: 0
|
А дальше использовать метод QAbstractItemModel * QAbstractProxyModel::sourceModel () const, чтобы получить исходную модель
Сообщение отредактировал DOGG - 31.10.2011, 9:53 |
|
|
|
|
Флинт |
31.10.2011, 9:53
Сообщение
#4
|
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 1.10.2011 Пользователь №: 2919 Спасибо сказали: 0 раз(а) Репутация: 0
|
Спасибо работает. И еще вопросик если можно, возникает проблема при удалении строк из промежуточной модели, у них с главной моделью индексы по понятным причинам не совпадают. Поэтому удаляется, не та строчка, которая нужна. Понятно, что нужно переопределить метод removeRow в прокси модели, потом можно использовать метод sourceModel()->removeRow(int row), только вот все равно надо как-то индекс правильный вычислить.
|
|
|
|
|
DOGG |
31.10.2011, 10:00
Сообщение
#5
|
![]() Студент ![]() Группа: Участник Сообщений: 44 Регистрация: 9.8.2011 Из: Калининград Пользователь №: 2798 Спасибо сказали: 6 раз(а) Репутация: 0
|
у прокси модели есть такой метод для получения правильного индекса из исходной модели - virtual QModelIndex mapToSource ( const QModelIndex & proxyIndex ) const = 0.
Сообщение отредактировал DOGG - 31.10.2011, 10:36 |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 22.12.2025, 16:13 |