如何解决如何从tkinter运行两个并行脚本?
使用此代码,我可以创建一个TK Inter弹出式窗口,并带有一个用于运行Sample_Function
的按钮。
此Sample_Function
破坏了tk弹出窗口,运行另一个python文件,然后再次打开自身(第一个弹出窗口)。
如何才能同时运行other_python_file
并弹出“自身”信息-这样我就可以在完成每个功能之前触发许多功能?
import sys,os
from tkinter import *
import tkinter as tk
root = Tk()
def Sample_Function():
root.destroy()
sys.path.insert(0,'C:/Data')
import other_python_file
os.system('python this_tk_popup.py')
tk.Button(text='Run Sample_Function',command=Sample_Function).pack(fill=tk.X)
tk.mainloop()
解决方法
我认为这将接近您想要的。它使用subprocess.Popen()
而非os.system()
来运行其他脚本并重新运行弹出窗口,该弹出窗口在等待它们完成时不会阻止执行,因此它们现在可以并行执行。
我还添加了一个 Quit 按钮以退出循环。
import subprocess
import sys
from tkinter import *
import tkinter as tk
root = Tk()
def sample_function():
command = f'"{sys.executable}" "other_python_file.py"'
subprocess.Popen(command) # Run other script - doesn't wait for it to finish.
root.quit() # Make mainloop() return.
tk.Button(text='Run sample_function',command=sample_function).pack(fill=tk.X)
tk.Button(text='Quit',command=lambda: sys.exit(0)).pack(fill=tk.X)
tk.mainloop()
print('mainloop() returned')
print('restarting this script')
command = f'"{sys.executable}" "{__file__}"'
subprocess.Popen(command)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。