我是python的新手,我一直想用python tkinter运行一个可执行文件,通过按下一个按钮,可执行文件将使用os.system运行并通过按下另一个按钮来停止它我已经编写了ac代码来停止可执行文件使用kill命令并在python gui中运行可执行文件,但是一旦进程运行无法单击其他按钮。如果要停止它,我已经粘贴了下面的代码,请帮我解决这个问题
from Tkinter import *
import os
import sys
def init():
os.system('./a.out')
def lena():
os.system('./test')
WINDOW_W = 300
WINDOW_H = 80
def createDisplay():
global tk
global btn
# create the tk window - within which
# everything else will be built.
tk = Tk()
#Add a canvas area ready for drawing on
canvas = Canvas(tk, width=WINDOW_W, height=WINDOW_H)
canvas.pack()
#Add an exit button
btn = Button(tk, text="lena", command=lena)
btn.pack()
btn1 = Button(tk, text="optimist", command=lambda:os.system('./optimist'))
btn1.pack()
btn2 = Button(tk, text="text",command=init)
btn2.pack()
btn3 = Button(tk, text="exit", command=terminate)
btn3.pack()
# Start the tk main-loop (this updates the tk display)
tk.mainloop()
def terminate():
global tk
tk.destroy()
def main():
createDisplay()
if __name__ == '__main__':
main()
答案 0 :(得分:0)
os.system
是一个阻塞函数,在你调用的命令完成之前,程序中不会发生任何其他事情。
考虑使用subprocess代替
import subprocess
subprocess.Popen('./test')
使用子进程,您调用的脚本将作为单独的进程在后台运行。