我想通过使用python GUI单击不同的按钮来运行多命令行?
例如我有button1和button2,当我点击button1时,命令行将被执行,当我按下button2时,应该打开另一个shell并运行新的命令行,并停止使用。
我读到了它,但我找不到合适的代码
我写的内容如下:
class Application(Frame):
"""A GUI """
def __init__(self,master):
Frame.__init__(self,master)
self.grid()
self.create_widgets()
def create_widgets(self):
#create first button
self.button = Button(self, text="roscore", command=self.roscore)
self.button.grid()
#create first button 1
self.button1 = Button(self, text="rqt plot", command=self.open_rqt)
self.button1.grid()
def open_rqt(self):
call(["rosrun", "rqt_plot", "rqt_plot"])
def roscore(self):
call(["roscore"])
root = Tk()
root.title("GUI")
root.geometry("1000x1000")
app = Application(root)
root.mainloop()
答案 0 :(得分:0)
subprocess.call()
等待命令完成。不要在command
回调中使用它:它会使GUI无响应 - 所有内容都会冻结,直到call()
返回。
为避免阻止GUI,您可以使用subprocess.Popen()
代替子进程启动后立即返回。
如果要在新的终端窗口中运行每个命令;见Execute terminal command from python in new terminal window?