Proxy Pyqtgraph RemoteGraphics视图和连接信号
因此,我目前在我的应用程序中使用RemoteGraphicsView,并包含一个LinearRegionItem 进入视野。我试图将信号“sigRegionChanged”连接到我的应用程序中的一个函数,但根据我的尝试,我得到了以下错误 新型信号/槽Proxy Pyqtgraph RemoteGraphics视图和连接信号,proxy,pyqt,pyqtgraph,Proxy,Pyqt,Pyqtgraph,因此,我目前在我的应用程序中使用RemoteGraphicsView,并包含一个LinearRegionItem 进入视野。我试图将信号“sigRegionChanged”连接到我的应用程序中的一个函数,但根据我的尝试,我得到了以下错误 新型信号/槽 my_region.sigRegionChanged.connect(self.my_function) 我从处理程序调用中得到以下错误 _pickle.PicklingError:无法pickle:属性查找内置项.method失败 旧式 sel
my_region.sigRegionChanged.connect(self.my_function)
我从处理程序调用中得到以下错误
_pickle.PicklingError:无法pickle:属性查找内置项.method失败
旧式
self.connect(spot_area, QtCore.SIGNAL('sigRegionChanged'), self.spot_adjusted)
获取有关spot_区域是ObjectProxy的错误
有什么想法吗?出现这种情况是因为您试图将回调函数直接发送到远程进程,而pickle不知道如何序列化函数。相反,您需要手动为回调创建一个代理,并发送该代理:
proxy = pg.multiprocess.proxy(self.my_function, callSync='off', autoProxy=True)
myRegion.sigRegionChanged.connect(proxy)
这里还有其他一些微妙之处:
参数通过告诉远程进程在调用回调时不应等待返回值来提高性能callSync
- 需要
参数,因为当远程进程调用回调时,它将尝试将autoProxy
作为参数发送(因为这是信号的第一个参数)。使用LinearRegionItem
指示远程进程通过代理发送,而不是尝试对其进行pickle(这将失败)李>autoProxy=True
autoProxy
。。