Hi,
I am using QwtPlot to display large amounts of data, that comes in fas (every 1 msec). I decided i will not be refreshing the plot every time data new data comes and will rather do it every 100 msec. So I'm using a QTimer that times out every 100msec. When that happens QwtPlot::replot() is called.
void EWOSubPlot2D::replotTimerTimeout() {
lock_guard<mutex> replotLock(replotMutex);
if (replotFlag) {
replotFlag = false;
}
}
void EWOSubPlot2D::replot() {
lock_guard<mutex> replotLock(replotMutex);
replotFlag = true;
}
void EWOSubPlot2D::replotTimerTimeout() {
lock_guard<mutex> replotLock(replotMutex);
if (replotFlag) {
QwtPlot::replot();
replotFlag = false;
}
}
void EWOSubPlot2D::replot() {
lock_guard<mutex> replotLock(replotMutex);
replotFlag = true;
}
To copy to clipboard, switch view to plain text mode
I am using a zoomer, magnifier and a panner.
When I overload replot() method like shown above, zommer does not draw rectangles as i draw them and
when i press keyboard combination for zoom out, axis labels are not displayed yet. It seems to me that QwtPlot::replot() does other things than just replotting, so it cant be "put in queue" and executed later?
I'm using Qwt 6.1.2
BR, f0orz4h
Bookmarks