首页 > 解决方案 > 为什么我的 TKinter GUI 代码可以在交互式 shell 中工作,但从文件运行时却不行?

问题描述

我正在尝试获取一些具有命令行界面的代码并为它们提供 GUI。但是,我遇到了一个问题。谁能帮我理解为什么当我从一个文件运行我的代码时,什么都没有发生,但是如果我以交互方式运行它,它工作正常吗?下面是一个简单的例子。顺便说一句,我在 Windows 10 上运行 Python 3.8.1。提前致谢!

import tkinter as tk
import tkinter.ttk as ttk
#--------------------------
window = tk.Tk()
window.title('Test Window')
window.geometry('1000x800') 

标签: pythontkinterinteractive

解决方案


这是因为您没有调用该mainloop函数。Tkinter 在交互运行时会自动处理事件,但在非交互运行时需要显式启动事件循环。您的代码正在运行,但是因为您从未告诉它开始监听事件,所以它在文件末尾退出,就像任何其他 python 脚本一样。

您应该添加window.mainloop()为文件的最后一行。


推荐阅读