如何在Tkinter GUI激活时运行我的Python脚本?

0 投票
1 回答
5861 浏览
提问于 2025-04-17 18:31

我正在尝试创建一个图形用户界面(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()

撰写回答