【发布时间】:2015-06-20 10:42:26
【问题描述】:
我正在开发一个应用程序,它会在您按下 GUI 上的开始按钮时运行一批测试。问题是,一旦调用了运行测试的子进程,Python GUI 就会冻结,直到子进程完成执行。顺便说一句,我使用的是 Python 2.7。
我想在测试运行时与 GUI 进行交互,在不中断测试的情况下可以按下不同的按钮等。
这是我对这部分内容的摘录:
import Tkinter
import tkMessageBox
import subprocess
top = Tkinter.Tk()
def batchStartCallBack():
tkMessageBox.showinfo("Batch Application", "Batch STARTED!")
for x in range(0, 3):
p = subprocess.call('batch path', stdout = None, stderr = None, shell=False)
def batchStopCallBack():
tkMessageBox.showinfo("Batch Application", "Batch Stopped!")
# STOP BATCH
StartButton = Tkinter.Button(top, text = "Start Batch", command = batchStartCallBack, width = 8, height = 2)
StopButton = Tkinter.Button(top, text = "Stop Batch", command = batchStopCallBack, width = 8, height = 2)
StartButton.pack()
StopButton.pack()
top.mainloop()
【问题讨论】:
标签: python multithreading user-interface subprocess