Hi everybody, this is my first post to this forum. I'm noob to both Qt and C++.

I'm trying to implement a gui for my hardware which takes analog data by a PCI AD card and processes all those data and visualize by using QwtPlot. Besides it does some other control by using a PCI DA and PCI Counter boards.

What I'm doing now in visualization part is, acquiring the data by a QThread then showing them as QwtPlotCurve objects in the main thread. Since I have too much data (getting 12 channels simultaneously) I have 12 curve objects. Storing the data in a QVector<QVector<double>> which is 13 x 2000 (may change) and updating all those curve data in the main thread takes too much of cpu time. This makes the gui less responsive (pressing the stop button responses after 5 seconds or sometimes never)

What I want to do is, updating the QwtPlotCurves in a new QThread like the other QThread acquiring data. But when I tried this, I could not reach the Qwt objects from inside of the thread.

I've checked both the forum and the Qt4 book I have. The way to communicate between threads is using signal/slot, I know. But when I use this way, main thread will still be busy when the slot is called to update the curves.

I'm asking some ideas, how to overcome this? Most probably I'm missing something since I'm totally a noob. All your comments are welcome.
Thanks