pyqtgraph:我想在新进程中执行pyqtgraph

时间:2016-07-21 04:55:31

标签: python pyqt pyqtgraph multiprocess

亲爱的pyqtgraph大师,

我想在新创建的进程中执行pyqtgraph。

在我的项目中有一个python模块:trading.py。该模块使用此代码

创建一个新流程
p = Process(target = realDataProcess.realDataProcessStart, args=(self.TopStockList, self.requestCodeList, self.account))

你知道,为了保持pyqtgraph显示计算机监视器,我们必须使用如下所示的pyqt循环。

QApplication.instance().exec_()

但是在新的过程中,似乎上面的代码并不起作用。我的图表弹出并突然消失.....

这有什么解决方案吗?请帮帮我。

2 个答案:

答案 0 :(得分:0)

我对multiprocess和pyqtgraph的经验是,你不能在新进程上创建一个新的pyqtgraph窗口。 因此,您只能在主流程上使用pyqtgrahp。 我认为在网上某处有解释。

如果你想创建额外的进程来做某事,除了pyqtgraph之外,如果 name ==' main ',请将你的pyqtgraph代码放在下面: 否则,您将拥有与进程一样多的窗口。

答案 1 :(得分:0)

您可能想要使用 RemoteGraphicsView 类,该类使用 Multiprocessing 实用程序库

<块引用> <块引用>

多处理实用程序库

这个库提供:

  • 启动一个新的python解释器进程的简单机制,可以从原始进程中控制 (例如,这允许在远程进程中显示和操作图 而父进程可以自由做其他工作)
  • 允许在远程进程中托管的对象像在本地一样使用的代理系统
  • 进程间的Qt信号连接
  • 用于数字运算的非常简单的内联并行化(仅限 fork;不适用于 Windows)

如果需要,您实际上可以使用此类来制作在第二个窗口中在新进程上执行的图形。

看看这两个例子 examples/RemoteGraphicsView.pyexamples/RemoteSpeedTest.py