如何在Tkinter GUI激活时运行我的Python脚本?
我正在尝试创建一个图形用户界面(GUI)。我需要在这个界面运行另一个Python脚本,同时让这个界面保持活跃。(这个界面需要处理这个脚本执行后的数据)因为我使用Tkinter创建了这个界面,所以我不能在Python终端中直接运行另一个文件。
我该如何解决这个问题呢?
1 个回答
1
你不需要再启动一个新的解释器。
你可以简单地在一个单独的线程或进程中执行另一个脚本的代码。
重构你的“其他”脚本
你希望你的“其他”脚本能够被另一个脚本调用。为此,你只需要一个函数来完成你原来脚本的工作。
#other.py
def main(arg1, arg2, arg3):
do_stuff(arg1, arg2)
more_stuff(arg2, arg3)
other_stuff(arg1, arg3)
finish_stuff(arg1, arg2, arg3)
在另一个线程中执行代码
在你的主脚本中,当你想执行 other.py
的代码时,启动一个新的线程:
#script.py
from threading import Thread
from other import main
thread = Thread(target = main)
thread.start() # This code will execute in parallel to the current code
要检查你的工作是否完成,可以使用 thread.is_alive()
。如果你想等它完成后再继续,可以用 thread.join()
。