Russian Qt Forum
Сентябрь 30, 2024, 22:25 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Связь графики и данных QGraphicObject  (Прочитано 3620 раз)
ammaximus
Гость
« : Июль 29, 2012, 00:42 »

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

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Июль 29, 2012, 01:05 »

Я использую QVector для хранения объектов. Можно ли еще больше расширить функционал, унаследовав эти объекты от QGraphicObject, чтобы не пересылать данные отображения в отдельный массив? Основной вопрос в том, что вектор является мутексированным и используется кучей потоков.
Вектор перемещает элементы при добавлении. Если объект солидный (а QGraphicObject да) то надо хранить в QVector не сами объекты, а указатели на них.

Еще я добавляю в объекты ссылки на формы(отдельный поток), которые специализируются в редактировании конкретных объектов. Смысл в возможности создания впоследствии наследников с собственными интерфейсами. Насколько это противоречит идеологии?
Мало информации чтобы что-то рекомендовать. В смысле идеологии можно так: возможен ли объект не имеющий "формы"? Да запросто. Значит надо хранить в объекте указатель на форму (который может быть нулевым), а не ссылку.
Записан
ammaximus
Гость
« Ответ #2 : Июль 29, 2012, 01:39 »

О извините, я использую указатели в обоих случаях. Меня беспокоит как QGraphicObject будет влиять на интерактивность работы многопоточного приложения, не будет ли залипаний интерфейса. Я просто пока с трудом прикидываю как будет происходить обращение к данным мутексированного графического объекта.
В обоих случаях хочу обеспечить пользователя нормальным отображением
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #3 : Июль 29, 2012, 01:53 »

О извините, я использую указатели в обоих случаях. Меня беспокоит как QGraphicObject будет влиять на интерактивность работы многопоточного приложения, не будет ли залипаний интерфейса. Я просто пока с трудом прикидываю как будет происходить обращение к данным мутексированного графического объекта.
Возможно Вы говорите о защите контейнера мутексами. А смысл защищать сами объекты непонятен - если методы вызывают UI, то все равно придется звать их из главной нитки
Записан
DmitryM
Гость
« Ответ #4 : Июль 29, 2012, 10:53 »

Все зависит от того, как используется вектор в разных нитях.
Записан
ammaximus
Гость
« Ответ #5 : Июль 29, 2012, 23:53 »

Все зависит от того, как используется вектор в разных нитях.
Подготовлю мин код тогда выложу, а то так не понятно
Записан
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #6 : Июль 30, 2012, 11:56 »

Как вариант, можно генерить сигналы при определенных событиях обработки данных в ваших векторах, а сигналы будут ловиться вашими графическими объектами и своевременно отрисовываться из главного потока.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.08 секунд. Запросов: 23.