*qapp.exec_()* runs a GUI event loop that waits for user actions (events).
In your case you can also use *pg.QtGui.QApplication.instance().exec_()*.
Exiting from that loop can be done with *qapp.exit_()* or
*pg.QtGui.QApplication.instance().exit()*

This is a simplest solution (I can found) when you want to use classes. I
also commented out some rows I think you not currently need it.
































*import multiprocessingimport numpy as npimport sysimport pyqtgraph as
pgimport ReadDataclass MyClass(object):        def __init__(self):
self.matrix_main = np.memmap('myData.dat', dtype='float64', mode='w+',
shape=(5000, 5))        p =
multiprocessing.Process(target=ReadData.worker)        p.start()
win1 = pg.GraphicsWindow()        win1.setWindowTitle('Data plot')
        p1 = win1.addPlot()        # index = int(self.matrix_main[0, 0])
    self.curve1 = p1.plot()  # matrix_main[:index, 2], pen='k')
timer = pg.QtCore.QTimer()        timer.timeout.connect(self.update1)
    timer.start(0)            pg.QtGui.QApplication.instance().exec_()
def update1(self):        index = int(self.matrix_main[0, 0])
self.curve1.setData(self.matrix_main[:index, 2])        #
pg.QtGui.QApplication.processEvents()        if __name__ == '__main__':
mc = MyClass()    # if (sys.flags.interactive != 1) or not hasattr(QtCore,
'PYQT_VERSION'):        # QtGui.QApplication.instance().exec_()*

P.S. You could clear your plot data if you call

*self.curve1.clear().*
Good luck again,
Vasilije

On Fri, Aug 5, 2016 at 10:37 PM, <[email protected]> wrote:

> Hi Vasilije,
>
> Many thanks for your solution - it works well!
>
> I understand that qapp = pg.mkQApp() initializes the application but not
> too sure about the precise meaning of  sys.exit(qapp.exec_()). Also how
> would these commands change if I were using them within classes.
>
> Finally, I realize that as the 'matrix_main' array size increases over
> time, the plot would take up more and more RAM memory. Is there anyway to
> improve this situation (e.g. calling garbage collection) - I guess that
> with 'curve1.setData', previous trace is already being deleted before new
> one is plotted.
>
> Many thanks for your help.
>
>
>
> On Friday, 5 August 2016 18:06:38 UTC+1, [email protected] wrote:
>>
>> Hi All,
>>
>> I have recently started using Python and pyqtgraph so apologies for a
>> rather basic question. I am trying to read some data from a file and plot
>> it using pyqtgraph (as given in the code below). All the plot
>> initialization is done in the main function and then the plot is updated
>> through a QTimer. However, when I try to run this code, it returns the
>> error:
>>
>> QtGui.QApplication.instance().exec_()
>> AttributeError: 'NoneType' object has no attribute 'exec_'
>>
>> Any help with this would be much appreciated.
>>
>> Thanks.
>>
>> import multiprocessing
>> import numpy as np
>> import sys
>> import pyqtgraph as pg
>> from pyqtgraph.Qt import QtCore, QtGui
>> import ReadData
>>
>> def main():
>>     matrix_main = np.memmap('myData.dat', dtype='float64', mode='w+', 
>> shape=(5000, 5))
>>
>>     p = multiprocessing.Process(target=ReadData.worker)
>>     p.start()
>>
>>     win1 = pg.GraphicsWindow()
>>     win1.setWindowTitle('Data plot')
>>
>>     p1 = win1.addPlot()
>>
>>     index = int(matrix_main[0, 0])
>>     curve1 = p1.plot(matrix_main[:index, 2], pen='k')
>>     pg.QtGui.QApplication.processEvents()
>>     timer = pg.QtCore.QTimer()
>>     timer.timeout.connect(update1)
>>     timer.start(1000)
>>
>> def update1():
>>     global curve1, matrix_main
>>     index = int(matrix_main[0, 0])
>>     curve1.setData(matrix_main[:index, 2])
>>
>> if __name__ == '__main__':
>>     if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
>>         QtGui.QApplication.instance().exec_()
>>         main()
>>
>>
>>
>> --
> You received this message because you are subscribed to the Google Groups
> "pyqtgraph" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/pyqtgraph/2d72f103-5c74-43f9-be71-b8ceb8d06329%40googlegroups.com
> <https://groups.google.com/d/msgid/pyqtgraph/2d72f103-5c74-43f9-be71-b8ceb8d06329%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"pyqtgraph" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/pyqtgraph/CAD_qyJofP6wbHMwkpSnK27ex%2Bu0CLXwkuJ%2BvFH13qXe9kepxxA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to