Использование QAbstactItemModel и QAbstractItemView |
Здравствуйте, гость ( Вход | Регистрация )
Использование QAbstactItemModel и QAbstractItemView |
Анна |
19.12.2013, 12:46
Сообщение
#1
|
Активный участник Группа: Участник Сообщений: 276 Регистрация: 22.5.2008 Из: Зеленоград Пользователь №: 181 Спасибо сказали: 30 раз(а) Репутация: 4 |
Практически все мои приложения, написанные за последние два года, представляют собой штуку, которая получает из железки структуру со всевозможными данными (настройками железки), отображает эти данные в формах, позволяет редактировать данные и заливать обратно в железку. Иногда появляются всякие усложнения типа обеспечить набор общих данных для группы железок и т. д. В общем, типичное MVC.
Обычно, из кутешных классов использовала QStandardItemModel и соответствующие вьювер для таблицы, когда в данных встречались массивы. И вдруг на старости лет меня посетила мысля почему бы на использовать QAbstractItemModel для всей структуры данных из железки, а для форм использовать QAbstractItemView. Наверняка кто-нибудь уже имел дело с подобной реализацией. Может, поделитесь опытом или кинете ссылку на что-нибудь похожее из кутешных проектов. |
|
|
Алексей1153 |
24.12.2013, 22:59
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Практически все мои приложения, написанные за последние два года, представляют собой штуку, которая получает из железки структуру со всевозможными данными (настройками железки), отображает эти данные в формах, позволяет редактировать данные и заливать обратно в железку. у меня тоже, но сути вопроса я не смог понять Имеется в виду - объединить инфу с нескольких приборов и отобразить её всю скопом (например слить все журналы событий в один) ? |
|
|
Анна |
25.12.2013, 12:57
Сообщение
#3
|
Активный участник Группа: Участник Сообщений: 276 Регистрация: 22.5.2008 Из: Зеленоград Пользователь №: 181 Спасибо сказали: 30 раз(а) Репутация: 4 |
Практически все мои приложения, написанные за последние два года, представляют собой штуку, которая получает из железки структуру со всевозможными данными (настройками железки), отображает эти данные в формах, позволяет редактировать данные и заливать обратно в железку. у меня тоже, но сути вопроса я не смог понять Имеется в виду - объединить инфу с нескольких приборов и отобразить её всю скопом (например слить все журналы событий в один) ? Вопрос в том, как кто-нибудь применял класс QAbstractItemModel для отображения такой каракатицы, как набор структур , вложенные друг в друга всевозможными способами, и как сделать на QAbstractItemView форму для заполнения и редактирования структур, чтобы она работала так же, как работают поля в таблице - я редактирую поле, переключаю радиокнопки или выставляю флажок, а данные тут же валятся в модель? Ведь по сути структуру любой сложности можно представить как комбинацию деревьев и таблиц. Кто-нибудь это делал? |
|
|
Алексей1153 |
28.12.2013, 7:29
Сообщение
#4
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
делать не приходилось, но решение очевидное - дерево, представленное в виде таблиц. Таблица - это ветка. Каждая ячейка может содержать свою таблицу. Каждой ячейке назначается свой делегат через
для редактирования виджет делегата можно попробовать распахивать во всю морду таблицы |
|
|
Анна |
30.12.2013, 10:43
Сообщение
#5
|
Активный участник Группа: Участник Сообщений: 276 Регистрация: 22.5.2008 Из: Зеленоград Пользователь №: 181 Спасибо сказали: 30 раз(а) Репутация: 4 |
С делегатом я уже экспериментировала - данные из строки выводятся в делегате-диалоге. Очень удобно.
Но сейчас меня больше интересует применение QAbstractItemView и его возможность сразу же сообщать модели об изменении в текущем элементе. Например, ситуация, когда часть структуры отображена в QTreeView слева, а содержимое текущего элемента отображено справа в произвольной форме, зависящей от содержимого. Например, как многие хелпы: слева - список статей, справа - текущая статья. Или как в панели управления у винды. |
|
|
Алексей1153 |
6.2.2014, 7:37
Сообщение
#6
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Анна, элементы view должны извещать один общий "центр", который затем извещает все view о том, что им надо перерисоваться
|
|
|
Текстовая версия | Сейчас: 29.3.2024, 13:18 |