Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: ammaximus от Июль 29, 2012, 00:42



Название: Связь графики и данных QGraphicObject
Отправлено: ammaximus от Июль 29, 2012, 00:42
Я использую QVector для хранения объектов. Можно ли еще больше расширить функционал, унаследовав эти объекты от QGraphicObject, чтобы не пересылать данные отображения в отдельный массив? Основной вопрос в том, что вектор является мутексированным и используется кучей потоков.
Еще я добавляю в объекты ссылки на формы(отдельный поток), которые специализируются в редактировании конкретных объектов. Смысл в возможности создания впоследствии наследников с собственными интерфейсами. Насколько это противоречит идеологии?


Название: Re: Связь графики и данных QGraphicObject
Отправлено: Igors от Июль 29, 2012, 01:05
Я использую QVector для хранения объектов. Можно ли еще больше расширить функционал, унаследовав эти объекты от QGraphicObject, чтобы не пересылать данные отображения в отдельный массив? Основной вопрос в том, что вектор является мутексированным и используется кучей потоков.
Вектор перемещает элементы при добавлении. Если объект солидный (а QGraphicObject да) то надо хранить в QVector не сами объекты, а указатели на них.

Еще я добавляю в объекты ссылки на формы(отдельный поток), которые специализируются в редактировании конкретных объектов. Смысл в возможности создания впоследствии наследников с собственными интерфейсами. Насколько это противоречит идеологии?
Мало информации чтобы что-то рекомендовать. В смысле идеологии можно так: возможен ли объект не имеющий "формы"? Да запросто. Значит надо хранить в объекте указатель на форму (который может быть нулевым), а не ссылку.


Название: Re: Связь графики и данных QGraphicObject
Отправлено: ammaximus от Июль 29, 2012, 01:39
О извините, я использую указатели в обоих случаях. Меня беспокоит как QGraphicObject будет влиять на интерактивность работы многопоточного приложения, не будет ли залипаний интерфейса. Я просто пока с трудом прикидываю как будет происходить обращение к данным мутексированного графического объекта.
В обоих случаях хочу обеспечить пользователя нормальным отображением


Название: Re: Связь графики и данных QGraphicObject
Отправлено: Igors от Июль 29, 2012, 01:53
О извините, я использую указатели в обоих случаях. Меня беспокоит как QGraphicObject будет влиять на интерактивность работы многопоточного приложения, не будет ли залипаний интерфейса. Я просто пока с трудом прикидываю как будет происходить обращение к данным мутексированного графического объекта.
Возможно Вы говорите о защите контейнера мутексами. А смысл защищать сами объекты непонятен - если методы вызывают UI, то все равно придется звать их из главной нитки


Название: Re: Связь графики и данных QGraphicObject
Отправлено: DmitryM от Июль 29, 2012, 10:53
Все зависит от того, как используется вектор в разных нитях.


Название: Re: Связь графики и данных QGraphicObject
Отправлено: ammaximus от Июль 29, 2012, 23:53
Все зависит от того, как используется вектор в разных нитях.
Подготовлю мин код тогда выложу, а то так не понятно


Название: Re: Связь графики и данных QGraphicObject
Отправлено: Fregloin от Июль 30, 2012, 11:56
Как вариант, можно генерить сигналы при определенных событиях обработки данных в ваших векторах, а сигналы будут ловиться вашими графическими объектами и своевременно отрисовываться из главного потока.