![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Анна |
![]()
Сообщение
#1
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 276 Регистрация: 22.5.2008 Из: Зеленоград Пользователь №: 181 Спасибо сказали: 30 раз(а) Репутация: ![]() ![]() ![]() |
Практически все мои приложения, написанные за последние два года, представляют собой штуку, которая получает из железки структуру со всевозможными данными (настройками железки), отображает эти данные в формах, позволяет редактировать данные и заливать обратно в железку. Иногда появляются всякие усложнения типа обеспечить набор общих данных для группы железок и т. д. В общем, типичное MVC.
Обычно, из кутешных классов использовала QStandardItemModel и соответствующие вьювер для таблицы, когда в данных встречались массивы. И вдруг на старости лет меня посетила мысля почему бы на использовать QAbstractItemModel для всей структуры данных из железки, а для форм использовать QAbstractItemView. Наверняка кто-нибудь уже имел дело с подобной реализацией. Может, поделитесь опытом или кинете ссылку на что-нибудь похожее из кутешных проектов. |
|
|
Алексей1153 |
![]()
Сообщение
#2
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
Практически все мои приложения, написанные за последние два года, представляют собой штуку, которая получает из железки структуру со всевозможными данными (настройками железки), отображает эти данные в формах, позволяет редактировать данные и заливать обратно в железку. у меня тоже, но сути вопроса я не смог понять ![]() |
|
|
Анна |
![]()
Сообщение
#3
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 276 Регистрация: 22.5.2008 Из: Зеленоград Пользователь №: 181 Спасибо сказали: 30 раз(а) Репутация: ![]() ![]() ![]() |
Практически все мои приложения, написанные за последние два года, представляют собой штуку, которая получает из железки структуру со всевозможными данными (настройками железки), отображает эти данные в формах, позволяет редактировать данные и заливать обратно в железку. у меня тоже, но сути вопроса я не смог понять ![]() Вопрос в том, как кто-нибудь применял класс QAbstractItemModel для отображения такой каракатицы, как набор структур , вложенные друг в друга всевозможными способами, и как сделать на QAbstractItemView форму для заполнения и редактирования структур, чтобы она работала так же, как работают поля в таблице - я редактирую поле, переключаю радиокнопки или выставляю флажок, а данные тут же валятся в модель? Ведь по сути структуру любой сложности можно представить как комбинацию деревьев и таблиц. Кто-нибудь это делал? |
|
|
Алексей1153 |
![]()
Сообщение
#4
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
делать не приходилось, но решение очевидное - дерево, представленное в виде таблиц. Таблица - это ветка. Каждая ячейка может содержать свою таблицу. Каждой ячейке назначается свой делегат через
для редактирования виджет делегата можно попробовать распахивать во всю морду таблицы |
|
|
Анна |
![]()
Сообщение
#5
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 276 Регистрация: 22.5.2008 Из: Зеленоград Пользователь №: 181 Спасибо сказали: 30 раз(а) Репутация: ![]() ![]() ![]() |
С делегатом я уже экспериментировала - данные из строки выводятся в делегате-диалоге. Очень удобно.
Но сейчас меня больше интересует применение QAbstractItemView и его возможность сразу же сообщать модели об изменении в текущем элементе. Например, ситуация, когда часть структуры отображена в QTreeView слева, а содержимое текущего элемента отображено справа в произвольной форме, зависящей от содержимого. Например, как многие хелпы: слева - список статей, справа - текущая статья. Или как в панели управления у винды. |
|
|
Алексей1153 |
![]()
Сообщение
#6
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
Анна, элементы view должны извещать один общий "центр", который затем извещает все view о том, что им надо перерисоваться
|
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 17.2.2025, 4:31 |