【发布时间】:2017-05-23 04:10:15
【问题描述】:
我有四个不同的 python 程序,当用户按下一个单独的 python 文件上定义的 Tkinter 按钮时,我希望它们作为一个事件执行。到目前为止,这个 python 文件看起来像这样:
from tkinter import *
from tkinter import ttk
def arvuta():
return
VCalc = Tk()
VCalc.title("V-Calc")
VCalc.configure(background='#E6F3FE')
nupp = ttk.Button(VCalc, text="prog1", command=arvuta)
nupp.grid(column=1, row=1, padx=3, pady=3, sticky=(N, S, W, E))
nupp2 = ttk.Button(VCalc, text="prog2", command=arvuta)
nupp2.grid(column=2, row=1, padx=3, pady=3, sticky=(N, S, W, E))
nupp3 = ttk.Button(VCalc, text="prog3", command=arvuta)
nupp3.grid(column=1, row=3, padx=3, pady=3, sticky=(N, S, W, E))
nupp4 = ttk.Button(VCalc, text="prog4", command=arvuta)
nupp4.grid(column=2, row=3, padx=3, pady=3, sticky=(N, S, W, E))
VCalc.mainloop()
是否可以使用 Tkinter 按钮从另一个执行 python 程序?
【问题讨论】:
-
如果你想执行另一个进程,最好使用
subprocess模块。这似乎不太正确。它将使您有可能使用繁琐而缓慢的 IPC 技术在进程之间进行通信。也许一个好的方法可能是将您的其他代码用作此代码中的模块。因此,您将导入现有模块并直接从中调用函数。我不知道您的代码是否可以这样做。 -
我找到了一个解决方案,这是操作系统。 " def arvuta(): os.system('myprogram.py')" 可以解决吗?
-
如果它适合你,那没关系。 subprocess 比 os.system 功能更全,如果你经常做这种事情值得学习。