LINUX.ORG.RU

Qt : разделение интерфейса и отображения


0

1

Прога (главное окно) состоит из интерфейса (кнопочки, менюшки и т.д.) и окна отображения данных - QwtPlot. Когда данные выводятся, интерфейс начинает жутко тормозить. Поэтому надо запускать их в разных потоках.

У меня пока мысль - сделать класс-обертку для QwtPlot, наследованный от QThread и уже в нем запускать рисование.

Чем этот метод плох ? (Слышал, что запуск Qt'ешных объектов в разных потоках приводит к каким-то глюкам...) Подскажите - как еще это можно реализовать ?

Еще интересный момент: когда запускаю прогу по ssh с другого компа - все нормально, тормозов нет...


>Еще интересный момент: когда запускаю прогу по ssh с другого компа - все нормально, тормозов нет...

А вот это уже интереснее :)

yoghurt ★★★★★
()

>Когда данные выводятся, интерфейс начинает жутко тормозить. Поэтому надо запускать их в разных потоках.

Что-то мне подсказывает, что проблема не в этом.

yoghurt ★★★★★
()
Ответ на: комментарий от yoghurt

Хм... А в чем ? Откуда сомнения ? ) Когда вырубаю метод QwtPlot repaint - все ок...

drZlo
() автор топика

> Чем этот метод плох ?

Из документации - «QPainter can be used in a thread to paint onto QImage, QPrinter, and QPicture paint devices. Painting onto QPixmaps and QWidgets is not supported. »

Amp ★★★
()

Возможно ваши данные добавляются очень маленькими порциями и каждый раз вызывается перестроение изображения?
Попробуйте подготовить большую «пачку» данных и добавить их сразу все.

trex6 ★★★★★
()
Ответ на: комментарий от drZlo

Одно из двух: либо ты слишком часто перерисовываешь QwtPlot (и тогда ты делаешь что-то не то), либо ты ещё и производишь какие-то медленные операции над данными (и тогда их то и нужно выпихнуть в отдельный тред (а потом трахаться с синхронизацией до посинения, да)).

KblCb ★★★★★
()
Ответ на: комментарий от KblCb

Ну да, надо обработку выносить...

drZlo
() автор топика

У коллеги были траблы когда он выводил кучи графиков в qwt plot, в итоге он наследовался от него и переопределил рисование графиков, вроде как сделал общий curve для всех, выводимый разными цветами, могу точнее у него узнать если надо

Vernat ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.