python - 为什么我的 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')
解决方案
这是因为您没有调用该mainloop
函数。Tkinter 在交互运行时会自动处理事件,但在非交互运行时需要显式启动事件循环。您的代码正在运行,但是因为您从未告诉它开始监听事件,所以它在文件末尾退出,就像任何其他 python 脚本一样。
您应该添加window.mainloop()
为文件的最后一行。
推荐阅读
- python-3.x - 防止代码重复的函数(Pandas for Python using Jupyter Notebook)
- python - Python mypy 检查 TypeVar(bound=Union[A, B]) 的返回类型不会出错 vs TypeVar(A, B) 会出错
- c - Scanf 没有在 while 循环中被拾取
- kubernetes - 为每个用户授予特定命名空间的权限
- javascript - 在 Google Sheets 中制作自定义函数,代码在工作表之外工作,但不在工作表中
- python - 来自列和其他列的 Pandas countifs 值不为空
- c - 为什么我们不能打印从 0 到 31 的 ASCII 值?
- node.js - Angular HttpErrorResponse 401(未经授权)
- maven - 如何在 Netbeans 中为 JavaFX 11 项目修复“未找到主类”消息?
- python - 如何将 Big-O 表示法应用于此算法?