Название: Помогите разобраться с QAbstractItemModel и QAbstractItemView Отправлено: m.lyakishev от Ноябрь 10, 2010, 17:18 Всем доброго времени суток!
Я только начал изучать Qt. Есть такая вот задача: Имеется некоторая структура данных, к которой надо получить доступ для ее просмотра и изменения. Кроме того, имеется графическое окно, в котором рисуются оъекты на основании значений точек, заданных в структуре данных. Для отображения структуры данных я думал использовать QAbstractItemModel(собственно, и использовал, создал индексы для древовидной структуры, забил через model->setData() данные). И пытаюсь понять вот что. Те данные, которые занесены в модель, имеют связь с теми данными, которые мы изначально занесли из структуры данных? И если нет, то как тут поступить? Кроме того, интересует вопрос, как передавать значения из модели в QGLWidget. Я думаю, что тут подойдет сигнал dataChanged(), который должен генерировать следующий сигнал, уже несущий полезную информацию о точках, которую сможет принять через слот QGLWidget. Не знаю, верно ли это. Всем, кто ответит что-нибудь дельное по этим, думаю, простым вопросам, заранее большое спасибо! Название: Re: Помогите разобраться с QAbstractItemModel и QAbstractItemView Отправлено: Пантер от Ноябрь 10, 2010, 17:21 QAbstractItemModel используется не для отображения, а для хранения данных. Не нужно через setData вносить данные, модель сама должна обращаться к структурам и выдавать данные.
А по отображению в твоем случае помочь не могу. Название: Re: Помогите разобраться с QAbstractItemModel и QAbstractItemView Отправлено: m.lyakishev от Ноябрь 11, 2010, 15:47 Спасибо за ответ.
А можно чуть подробнее? Например, вот кусок моей структуры(класса): class PrimeFigure { public: int prime_geometry_type; float base_points[4][3]; ... }; Если хочется видеть через QTreeView, например, точки base_points[][] и иметь возможность их изменять, как в данном случае указать модели на эти точки? Название: Re: Помогите разобраться с QAbstractItemModel и QAbstractItemView Отправлено: crossly от Ноябрь 11, 2010, 16:06 в методе data( ) модели возвращать нужный элемент base_points, в методе setData соответственно его устанавливать...
Название: Re: Помогите разобраться с QAbstractItemModel и QAbstractItemView Отправлено: m.lyakishev от Ноябрь 12, 2010, 13:28 2 crossly:
Т.е. все-таки использовать модель для хранения данных, занося их при помощи setData() в модель, а потом менять значения данных структуры, заменяя их на значения из модели методом data() ? Просто Пантер говорит о прямом обращении модели к данным и их отображении, как я понял. Хотелось бы сделать что-то подобное. Название: Re: Помогите разобраться с QAbstractItemModel и QAbstractItemView Отправлено: crossly от Ноябрь 12, 2010, 14:05 Код: QVariant Model::data( const QModelIndex & index, int role) Название: Re: Помогите разобраться с QAbstractItemModel и QAbstractItemView Отправлено: m.lyakishev от Ноябрь 13, 2010, 02:18 Спасибо, разобрался, как нормально все организовать.
|