从当前运行的程序启动另一个pyqt程序

时间:2013-09-06 10:00:51

标签: python pyqt window-management

我有两个pyqt程序。两者都应该可以自己运行,但我需要从另一个运行其中一个。仅手动运行的那个名为foo,第二个名称(我想从foo调用的名称)称为bar。我尝试按照this示例进行操作,然后显示新窗口,但出现错误

  

AttributeError:'bar'对象没有属性'exec _'

我想我可以创造它,但我不知道该放入什么。那么如何通过单击第一个窗口中的按钮来弹出另一个窗口?

可以使原始窗口处于非活动状态的人的奖励积分。

以下是我的功能现在的样子:

barMaker = bar(self)
bar.exec_()

缺乏想象力,我知道。

2 个答案:

答案 0 :(得分:1)

你想用

调用第二个gui程序吗?
new_gui = subprocess.Popen("python "+path)

然后,您可以禁用第一个GUI或使用它执行任何操作。新GUI在单独的进程中运行。

答案 1 :(得分:0)

@ballsatballsdotballs答案对我不起作用,但非常接近。参考文档(Python2Python3相同)状态:

  

subprocess.Popen(args, ...)

     

args应该是一系列程序参数或者是一个单独的字符串。默认情况下,如果args是序列,则要执行的程序是args中的第一项。如果args是一个字符串,则解释与平台有关,如下所述。

我不确定这是否仅在原始答案发布后发生了变化(> 4岁),但为了完整起见,以下Popen构建对我有用:

new_gui = subprocess.Popen(["python", path])

如果需要,也可以替换“python3”。