crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> График. Помощь.
denmor86
  опции профиля:
сообщение 7.6.2011, 10:10
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 23
Регистрация: 7.6.2011
Пользователь №: 2723

Спасибо сказали: 0 раз(а)




Репутация:   0  


Появилась необходимость сделать динамический график. Появились вопросы:
1) На чём лучше рисовать? QPixmap?
2) Как сделать максимальное быстродействие?

Использовать QWT пробовал, но вся мощь библиотеки не нужна, соответственно затраты на изучение её не соизмеримы с задачей.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 7.6.2011, 13:11
Сообщение #2


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Вот. Когда то делал нечто подобное. Может пригодится.
Прикрепленные файлы
Прикрепленный файл  plot.zip ( 2.71 килобайт ) Кол-во скачиваний: 97
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
denmor86
  опции профиля:
сообщение 7.6.2011, 13:36
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 23
Регистрация: 7.6.2011
Пользователь №: 2723

Спасибо сказали: 0 раз(а)




Репутация:   0  


Спасибо, огромное, думаю это то что мне нужно.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
denmor86
  опции профиля:
сообщение 7.6.2011, 14:29
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 23
Регистрация: 7.6.2011
Пользователь №: 2723

Спасибо сказали: 0 раз(а)




Репутация:   0  


появился вопрос:
scene->addLine эта функция добавляет на сцену объект типа QGraphicsItem
Соответственно, чтобы добавлять на сцену большое кол-во объектов то их нужно и хранить в памяти...
У меня различных объектов может быть за раз более 1000-10000 штук.
Вопрос: нельзя ли их как то рисовать и удалять из памяти?

Всё разобрался. Спасибо!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 7.6.2011, 14:37
Сообщение #5


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


И какое же решение? :)

addLine не особо много памяти жрет, по крайней мере у меня.
Можно рисовать на QPixmap, но представьте каких он должен быть размеров, и сколько это будет хавать.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
denmor86
  опции профиля:
сообщение 7.6.2011, 15:24
Сообщение #6


Студент
*

Группа: Участник
Сообщений: 23
Регистрация: 7.6.2011
Пользователь №: 2723

Спасибо сказали: 0 раз(а)




Репутация:   0  


Я перепутал addLine с addItem. Памяти действительно не много ест. QPixmap не вариант уже понял.
Ещё раз спасибо вам огромное.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Fitz
  опции профиля:
сообщение 7.6.2011, 15:27
Сообщение #7


Студент
*

Группа: Новичок
Сообщений: 13
Регистрация: 22.11.2010
Пользователь №: 2207

Спасибо сказали: 0 раз(а)




Репутация:   0  


тут темка как-то была про плоттер -> Плоттер
можно на его основе сделать, пример по-моему универсальный
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
denmor86
  опции профиля:
сообщение 7.6.2011, 15:54
Сообщение #8


Студент
*

Группа: Участник
Сообщений: 23
Регистрация: 7.6.2011
Пользователь №: 2723

Спасибо сказали: 0 раз(а)




Репутация:   0  


Да, я видел этот пример, там большая беда с быстродействием.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
denmor86
  опции профиля:
сообщение 7.6.2011, 16:42
Сообщение #9


Студент
*

Группа: Участник
Сообщений: 23
Регистрация: 7.6.2011
Пользователь №: 2723

Спасибо сказали: 0 раз(а)




Репутация:   0  


Появился ещё вопрос. Может кто решал его...
Нужно добавить текст в нужное место.
scene->addText(str);

эта функция пишет текст в позицию (0,0)

Есть другой метод:
QGraphicsTextItem *textItem = new QGraphicsTextItem(str, 0, 0);;
textItem->setPos(10,10);
scene->addItem(textItem);

Но тут беда с использованием и освобождением памяти, так как после удаления памяти пропадает текст и со сцены.

Есть ли ещё какой то способ разместить текст в нужном месте сцены?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 7.6.2011, 17:02
Сообщение #10


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9666
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(denmor86 @ 7.6.2011, 17:29) *
Соответственно, чтобы добавлять на сцену большое кол-во объектов то их нужно и хранить в памяти...
У меня различных объектов может быть за раз более 1000-10000 штук.
Вопрос: нельзя ли их как то рисовать и удалять из памяти?
Если нарисованные объекты тебе больше нуе нужны (как в MS Paint) и нужна скрость - пригоден только QPainter, а графическое представление не пригодно - слишком медленно.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 21.4.2021, 21:19