运行bash脚本时python弹出窗口

2024-09-28 22:01:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我为一个应用程序制作了一个简单的PyGTK-gladegui。我做了一个按钮,然后on_button_click调用了一个bash脚本。 我想在bash脚本运行时显示一个弹出窗口,并在完成后隐藏它。我制作了一个名为runningWindow in Glade的窗口,并编写了以下代码:

def on_button1_clicked(self,widget):
   self.glade.get_object("runningWindow").show()
   os.system('bash run.sh')
   self.glade.get_object("runningWindow").hide()

此代码在运行.sh正在运行。如果删除hide()行,窗口将正确显示,但仅在运行.sh进程已完成。在

启动GUI的init函数:

^{pr2}$

如何在操作系统叫什么? 谢谢你的帮助!在


Tags: 代码self脚本bash应用程序getobjecton
2条回答

我不能解决这个问题,但我可以绕过它。其他人可能会觉得有用:

首先,应该使用子流程.Popen()而不是subprocess.call(). 它将子进程自动置于后台,因此显示运行窗口。问题是,如果不删除.hide()命令,窗口在弹出后立即消失。否则,跑完之后我就不能把窗户藏起来了。在

为了解决这个问题,我在一个新的(runningWindow.glade公司以及运行窗口.py)文件。在

然后我创建了一个包装器bash脚本,它说:

python runningWindow.py &
pid=$!
bash run.sh
kill pid

把这个bash脚本称为子流程.Popen()来自主python脚本。在

您可能需要查看subprocess模块,并在后台任务中运行子流程。在

相关问题 更多 >