Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос о mapp'инге GUI элементов с моделью
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Модель/Представление
Andrewshkovskii
Описываю клинический случай :
Есть sqlite база.
Есть к ней ГУЙ.
В гуе есть treeWidget, он отображает небольшую иерархическую структуру в базе.
Структура простая - есть N парентов, у них возможно M чилдов. У все них есть свои какие-то аттрибуты, и главное - id.
Обобщенная суть гуя - добавлять парентов, и чилдов к парентам.
Так вот, вопрос : насколько это плохой "тон" программирования, если я буду маппить (QMap <QTreeWidgetItem*, int>) элементы ГУЯ к их ID в базе? Это мне нужно для того, что бы знать, к какому именно паренту (его id) я буду через ГУЙ добавлять чилдов.
Или есть в Qt встроенный классы для такого дела?
Алексей1153
Andrewshkovskii, да мапь на здоровье :) Но ечть одно "но" - тщательно следи за жизнью элементов. Лучше всего инкапсулировать приватный мап в класс и приделать методы добавления, удаления и поиска
Andrewshkovskii
Ну это и подразумевалось, просто я думал что это будет "не кошерно" : )
Просто я глядел в сторону QSqlRelationalTableModel, QItemSelectionModel, QDataWidgetMapper, но так и не понял, как это дело завести для treeView/Widget.
Алексей1153
Цитата(Andrewshkovskii @ 8.12.2010, 21:55) *
просто я думал что это будет "не кошерно" : )



Andrewshkovskii, полагаю, если существуют раввины-программисты, то они тоже не чураются индексирования и ассоциирования :D
Litkevich Yuriy
Цитата(Andrewshkovskii @ 8.12.2010, 21:55) *
но так и не понял, как это дело завести для treeView/Widget.
изучай пример Editable Tree Model он хорошо задокументирован.
(Simple Tree Model не смотри, он кривой)
Andrewshkovskii
Я лишь скажу, что этот вариант удобно будет использовать ,если уж совсем надо кастомизировать модель/вьюху. Для моего случая это просто трата времени(будь оно проклято!), хотя и скилы хорошие можно получить.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.