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