pyqtgraph : 我想在新进程中执行 pyqtgraph
pyqtgraph : I want to execute pyqtgraph in new process
尊敬的pyqtgraph大师们,
我想在新创建的进程中执行pyqtgraph
在我的项目中有一个 python 模块:trading.py。此模块使用此代码创建一个新进程
p = Process(target = realDataProcess.realDataProcessStart, args=(self.TopStockList, self.requestCodeList, self.account))
而且你知道,要维护 pyqtgraph 显示计算机监视器,我们必须使用如下所示的 pyqt 循环。
QApplication.instance().exec_()
但在新进程中,上面的代码似乎不起作用。我的图表弹出然后突然消失.....
有什么解决办法吗?请帮帮我。
我对多进程和 pyqtgraph 的经验是,您不能在新进程上创建新的 pyqtgraph window。
因此,您只能在 主进程 上使用 pyqtgrahp。
我想网上某处有解释。
如果你想创建额外的进程来做一些事情,除了 pyqtgraph,把你的 pyqtgraph 代码放在下面 if name == 'main ':
否则,您将拥有与进程一样多的 windows。
您可能需要使用 class RemoteGraphicsView,它使用 Multiprocessing 实用程序库。
Multiprocessing utility library
本库提供:
- 用于启动新的 python 可以从原始进程控制的解释器进程的简单机制
(例如,这允许在远程进程中显示和操作绘图
而父进程可以自由地做其他工作)
- 允许托管在远程进程中的对象像在本地一样使用的代理系统
- 进程间的Qt信号连接
- 用于数字运算的非常简单的在线并行化(仅 fork;不适用于 windows)
如果需要,您实际上可以使用此 class 制作一个图表,在一秒钟内在新进程上执行 window。
看看这两个例子examples/RemoteGraphicsView.py and examples/RemoteSpeedTest.py
尊敬的pyqtgraph大师们,
我想在新创建的进程中执行pyqtgraph
在我的项目中有一个 python 模块:trading.py。此模块使用此代码创建一个新进程
p = Process(target = realDataProcess.realDataProcessStart, args=(self.TopStockList, self.requestCodeList, self.account))
而且你知道,要维护 pyqtgraph 显示计算机监视器,我们必须使用如下所示的 pyqt 循环。
QApplication.instance().exec_()
但在新进程中,上面的代码似乎不起作用。我的图表弹出然后突然消失.....
有什么解决办法吗?请帮帮我。
我对多进程和 pyqtgraph 的经验是,您不能在新进程上创建新的 pyqtgraph window。 因此,您只能在 主进程 上使用 pyqtgrahp。 我想网上某处有解释。
如果你想创建额外的进程来做一些事情,除了 pyqtgraph,把你的 pyqtgraph 代码放在下面 if name == 'main ': 否则,您将拥有与进程一样多的 windows。
您可能需要使用 class RemoteGraphicsView,它使用 Multiprocessing 实用程序库。
Multiprocessing utility library
本库提供:
- 用于启动新的 python 可以从原始进程控制的解释器进程的简单机制 (例如,这允许在远程进程中显示和操作绘图 而父进程可以自由地做其他工作)
- 允许托管在远程进程中的对象像在本地一样使用的代理系统
- 进程间的Qt信号连接
- 用于数字运算的非常简单的在线并行化(仅 fork;不适用于 windows)
如果需要,您实际上可以使用此 class 制作一个图表,在一秒钟内在新进程上执行 window。
看看这两个例子examples/RemoteGraphicsView.py and examples/RemoteSpeedTest.py