[pyqtgraph] Re: RemoteGraphicsView, adding items, and signals/slots
Still working on this issue if anyone has tried to remotely plot the crosshair example. On Friday, December 8, 2017 at 11:10:53 AM UTC-5, Geoffrey Barrett wrote: > > Hello, > > I am trying to do something similar to the *crosshair.py* example but > with *RemoteGraphicsView.* > > Hypothetically if I have something similar to this: > > from PyQt4 import QtGui, QtCore > import numpy as np > import pyqtgraph as pg > import pyqtgraph.widgets.RemoteGraphicsView > import sys > > class main_window(QtGui.QWidget): >"""class that will serve as main window""" >def __init__(self): >super(main_window, self).__init__() > ># view 1 > >self.view1 = pg.widgets.RemoteGraphicsView.RemoteGraphicsView() >self.plot1 = self.view1.pg.PlotItem() >self.view1.setCentralItem(self.plot1) > ># view 2 >self.view2 = pg.widgets.RemoteGraphicsView.RemoteGraphicsView() >self.plot2 = self.view2.pg.PlotItem() >self.view2.setCentralItem(self.plot2) > > > ># add Layout to widget > >layout = QtGui.QVBoxLayout() > >layout.addWidget(self.view1) >layout.addWidget(self.view2) > >self.setLayout(layout) > >self.show() > >self.plot() > >def plot(self): > >"""Plot random stuff for test""" > >t = np.arange(1)/500 > >data = np.random.rand(1, len(t)) > >self.plot1.plot(t, data.flatten()) >self.plot2.plot(t, data.flatten()) > > ># add linear region item ># self.lr = pg.LinearRegionItem() # this doesn't work it seems ># self.plot1.addItem(self.lr) ># RuntimeError: super-class __init__() of type InfiniteLine was never > called > >self.lr = self.view2.pg.LinearRegionItem() # this appears to work >self.plot2.addItem(self.lr) > >self.lr_proxy = pg.multiprocess.proxy(self.update_view1, > callSync='off', autoProxy=True) >self.lr.sigRegionChanged.connect(self.lr_proxy) > > > >def update_view1(self): ># This doesn't appear to be called at all >minX, maxX, = self.lr.getRegion() >self.view2.vb.setXRange(minX, maxX) > > def run(): > > app = pg.mkQApp() > win = main_window() > sys.exit(app.exec_()) > > > if __name__ == '__main__': > run() > > > When you move the linear region nothing happens so there's something > wrong. I used a proxy to connect the update_view1 slot to the > sigRegionChanged signal because I was getting a pickling error otherwise. > Any advice would be appreciated. > > -Geoff > -- 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 pyqtgraph+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/pyqtgraph/0f76-4cd4-4967-855e-20c521b5875c%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[pyqtgraph] Re: RemoteGraphicsView, adding items, and signals/slots
Also should be the following (I mistakenly put view2 instead of view1: def update_view1(self): # This doesn't appear to be called at all minX, maxX, = self.lr.getRegion() self.plot1.vb.setXRange(minX, maxX) On Friday, December 8, 2017 at 11:10:53 AM UTC-5, Geoffrey Barrett wrote: > > Hello, > > I am trying to do something similar to the *crosshair.py* example but > with *RemoteGraphicsView.* > > Hypothetically if I have something similar to this: > > from PyQt4 import QtGui, QtCore > import numpy as np > import pyqtgraph as pg > import pyqtgraph.widgets.RemoteGraphicsView > import sys > > class main_window(QtGui.QWidget): >"""class that will serve as main window""" >def __init__(self): >super(main_window, self).__init__() > ># view 1 > >self.view1 = pg.widgets.RemoteGraphicsView.RemoteGraphicsView() >self.plot1 = self.view1.pg.PlotItem() >self.view1.setCentralItem(self.plot1) > ># view 2 >self.view2 = pg.widgets.RemoteGraphicsView.RemoteGraphicsView() >self.plot2 = self.view2.pg.PlotItem() >self.view2.setCentralItem(self.plot2) > > > ># add Layout to widget > >layout = QtGui.QVBoxLayout() > >layout.addWidget(self.view1) >layout.addWidget(self.view2) > >self.setLayout(layout) > >self.show() > >self.plot() > >def plot(self): > >"""Plot random stuff for test""" > >t = np.arange(1)/500 > >data = np.random.rand(1, len(t)) > >self.plot1.plot(t, data.flatten()) >self.plot2.plot(t, data.flatten()) > > ># add linear region item ># self.lr = pg.LinearRegionItem() # this doesn't work it seems ># self.plot1.addItem(self.lr) ># RuntimeError: super-class __init__() of type InfiniteLine was never > called > >self.lr = self.view2.pg.LinearRegionItem() # this appears to work >self.plot2.addItem(self.lr) > >self.lr_proxy = pg.multiprocess.proxy(self.update_view1, > callSync='off', autoProxy=True) >self.lr.sigRegionChanged.connect(self.lr_proxy) > > > >def update_view1(self): ># This doesn't appear to be called at all >minX, maxX, = self.lr.getRegion() >self.view2.vb.setXRange(minX, maxX) > > def run(): > > app = pg.mkQApp() > win = main_window() > sys.exit(app.exec_()) > > > if __name__ == '__main__': > run() > > > When you move the linear region nothing happens so there's something > wrong. I used a proxy to connect the update_view1 slot to the > sigRegionChanged signal because I was getting a pickling error otherwise. > Any advice would be appreciated. > > -Geoff > -- 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 pyqtgraph+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/pyqtgraph/399e0c90-b857-41a8-8ee8-bf51cb157bce%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[pyqtgraph] Re: RemoteGraphicsView, adding items, and signals/slots
Also should be the following (I mistakenly put view2 instead of view1: def update_view1(self): # This doesn't appear to be called at all minX, maxX, = self.lr.getRegion() self.view1.vb.setXRange(minX, maxX) On Friday, December 8, 2017 at 11:10:53 AM UTC-5, Geoffrey Barrett wrote: > > Hello, > > I am trying to do something similar to the *crosshair.py* example but > with *RemoteGraphicsView.* > > Hypothetically if I have something similar to this: > > from PyQt4 import QtGui, QtCore > import numpy as np > import pyqtgraph as pg > import pyqtgraph.widgets.RemoteGraphicsView > import sys > > class main_window(QtGui.QWidget): >"""class that will serve as main window""" >def __init__(self): >super(main_window, self).__init__() > ># view 1 > >self.view1 = pg.widgets.RemoteGraphicsView.RemoteGraphicsView() >self.plot1 = self.view1.pg.PlotItem() >self.view1.setCentralItem(self.plot1) > ># view 2 >self.view2 = pg.widgets.RemoteGraphicsView.RemoteGraphicsView() >self.plot2 = self.view2.pg.PlotItem() >self.view2.setCentralItem(self.plot2) > > > ># add Layout to widget > >layout = QtGui.QVBoxLayout() > >layout.addWidget(self.view1) >layout.addWidget(self.view2) > >self.setLayout(layout) > >self.show() > >self.plot() > >def plot(self): > >"""Plot random stuff for test""" > >t = np.arange(1)/500 > >data = np.random.rand(1, len(t)) > >self.plot1.plot(t, data.flatten()) >self.plot2.plot(t, data.flatten()) > > ># add linear region item ># self.lr = pg.LinearRegionItem() # this doesn't work it seems ># self.plot1.addItem(self.lr) ># RuntimeError: super-class __init__() of type InfiniteLine was never > called > >self.lr = self.view2.pg.LinearRegionItem() # this appears to work >self.plot2.addItem(self.lr) > >self.lr_proxy = pg.multiprocess.proxy(self.update_view1, > callSync='off', autoProxy=True) >self.lr.sigRegionChanged.connect(self.lr_proxy) > > > >def update_view1(self): ># This doesn't appear to be called at all >minX, maxX, = self.lr.getRegion() >self.view2.vb.setXRange(minX, maxX) > > def run(): > > app = pg.mkQApp() > win = main_window() > sys.exit(app.exec_()) > > > if __name__ == '__main__': > run() > > > When you move the linear region nothing happens so there's something > wrong. I used a proxy to connect the update_view1 slot to the > sigRegionChanged signal because I was getting a pickling error otherwise. > Any advice would be appreciated. > > -Geoff > -- 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 pyqtgraph+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/pyqtgraph/568607fd-349d-4712-8c8a-ff46cbe072e2%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.