4 / 4 / 0
Регистрация: 02.07.2019
Сообщений: 26
|
||||||
1 | ||||||
Как обратиться к исходной модели моего класса из прокси-модели в pyqt5?16.11.2022, 16:43. Показов 571. Ответов 4
У меня есть модель my_model класса MyModelClass(QAbstractTableModel), у которой есть переменная класса columns. Я подключаю эту модель к прокси-модели my_proxy_model класса MyProxyModelClass(QSortFilterProxyModel) следующим образом:
0
|
|
16.11.2022, 16:43 | |
Ответы с готовыми решениями:
4
Цепочка из прокси-моделей. Как добыть индекс исходной модели? Обратиться к полю модели, изменить и сохранить ее в своем методе класса Django CBV Как сохранить фокус в TextField после перезагрузки модели в PyQt5 QML QtQuick Как создать скелет для stl модели по точкам поверхности модели? |
1427 / 672 / 299
Регистрация: 02.05.2020
Сообщений: 1,534
|
||||||
16.11.2022, 21:03 | 2 | |||||
хмм... у меня работает:
1
|
4 / 4 / 0
Регистрация: 02.07.2019
Сообщений: 26
|
|
16.11.2022, 22:16 [ТС] | 3 |
Да, действительно, если попробовать извлечь переменную класса MyModelClass из модели, полученной с помощью sourceModel(), то это может получиться. Но полученная с помощью sourceModel() модель имеет класс QAbstractItemModel. Если посмотреть описание sourceModel(), то мы увидим, что тип возвращаемого значения имеет аннотацию как QAbstractItemModel. Соответственно, мы не может гарантировать, что при получении переменной columns не возникнет ошибки.
Может быть, я недостаточно хорошо знаю наследование или приведение типов в python, и получение переменной класса таким образом является правильным, но моя среда разработки pycharm ругается на my_proxy_model.sourceModel().columns (хоть и проглатывает). Мне кажется, что должно быть какое-то простое решение, которое бы исключило эту неопределённость с типом модели.
0
|
1427 / 672 / 299
Регистрация: 02.05.2020
Сообщений: 1,534
|
||||||
17.11.2022, 11:07 | 4 | |||||
![]() Решение
Насколько я понимаю, это утверждение однозначно справедливо для C++. В Python немного иначе:
![]() Среда разработки справедливо ругается, потому что она знает только описание QAbstractTableModel
1
|
4 / 4 / 0
Регистрация: 02.07.2019
Сообщений: 26
|
||||||
17.11.2022, 16:12 [ТС] | 5 | |||||
Спасибо, что помогли разобраться. Среда разработки ругалась напрасно. Если проверить тип класса, возвращаемого sourceModel() следующим образом:
Добавлено через 9 минут isinstance() возвращает True в обоих случаях потому, что поддерживает наследование, а MyModelClass является наследником QAbstractItemModel и QAbstractTableModel, поэтому в данном случае лучше использовать прямое сравнение.
1
|
17.11.2022, 16:12 | |
Помогаю со студенческими работами здесь
5
Как использовать представление одной модели в представлении другой модели? Как в Yii обращаться с текущей модели из базовой модели? Сортировка в прокси-модели Индексы в прокси модели Обновление прокси-модели и ее представления Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |