微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从tkinter运行两个并行脚本?

如何解决如何从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 举报,一经查实,本站将立刻删除。