0

我有两个 pyqt 程序。两者都应该可以自己运行,但我需要从另一个运行其中一个。仅手动运行的一个被调用foo,第二个(我想从中调用的那个foo)被调用bar。我试图按照这个例子,我得到了新的窗口,但有一个错误

AttributeError:“bar”对象没有属性“exec_”

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

可以使原始窗口不活动的人的奖励积分。

这是我的函数现在的样子:

barMaker = bar(self)
bar.exec_()

没有想象力,我知道。

4

2 回答 2

1

您是否只想使用调用第二个 gui 程序

new_gui = subprocess.Popen("python "+path)

?

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

于 2013-09-06T17:07:31.130 回答
0

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

subprocess.Popen(args, ...)

args应该是程序参数序列或单个字符串。默认情况下,要执行的程序是argsifargs序列中的第一项。如果args是字符串,则解释取决于平台,如下所述。

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

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

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

于 2018-02-17T16:31:01.247 回答