Как узнать какую модель отображает представление в данный момент? |
Здравствуйте, гость ( Вход | Регистрация )
Как узнать какую модель отображает представление в данный момент? |
Флинт |
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 |
Метод 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 |
|
|
Текстовая версия | Сейчас: 28.11.2024, 18:15 |