Название: QwtPlot, QwtPlotMarkes Отправлено: carhun от Август 10, 2012, 15:12 Добрый день.
У меня есть допустим 10 QwtPlot'в на к-ых нарисовано на каждом по 5-10 кривых QwtPlotCurve ( к-ые плюс ко всему еще и solid). И дальше, что мне надо мне надо завести маркер на каждую кривую и в нем отображать значение оси Y , к-ое соотвествуется определенном Х. Значение Х я беру исходя из QwtPlotPicker'a - QwtPlotPicker - SIGNAL(moved(QPointF)). Так вот проблема заключается в том, что если я начну возить мышкой по графику, то соотвественно все значения надо пересчитывать, и заново атаачить на плоты и соотв. реплотить плоты... В связи с этим возникают очень большие лаги.... Как с этим можно бороться? Как сделать если у меня есть допустим на каждый плот QwtPlotPicker и как тогда, что бы когда я вожу по одному из плотов, на отсальных плотах трекеры тоже отображались? С уважением, carhun Название: Re: QwtPlot, QwtPlotMarkes Отправлено: kvrus от Август 29, 2012, 11:26 Как то год назад думал над этим же вопросом. Нужны были маркеры: сначала сделал так же как и вы пробовал перетаскивать маркер и все тормозило. Потом пошел дальше сделал оверлей прозрачный виджет поверх плоттера на котором обрабатывал перетаскивание и перерисовку (при этом плоттер не перерисовывался), все вроде работало быстренько, но
только оверлей перехватывал все события мыши над плоттером, соответственно зуммер не работал. Такой вариант не понравился и я вообще забил на тему. Недавно потребовалось делать задачу: на график накладывать маску. Это так же требует манипуляций с перетаскиванием объектов мышью по плоттеру. Реализовал через класс CanvasPicker (помоему в примерах QWT он есть). Он работает как обработчик событий для QWT очень быстро, можно поставить фильтр на события. Если в следующий раз соберусь делать маркер, то сделаю через этот класс. Попробуйте использовать его. Название: Re: QwtPlot, QwtPlotMarkes Отправлено: carhun от Сентябрь 10, 2012, 16:04 Спасибо, именно так и решил, через прозрачный виджет наложенный сверху...
Также, если кому-то может надо будет, то в trunk'e QWT сейчас есть класс QwtPlotOverlay , к-ый делает по сути тоже самое... |