【问题标题】:Why does my TKinter GUI code work from interactive shell, but not when run from a file?为什么我的 TKinter GUI 代码可以在交互式 shell 中工作,但从文件运行时却不行?
【发布时间】:2020-01-27 16:52:48
【问题描述】:

我正在尝试使用我的一些具有命令行界面的代码并为它们提供 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') 

【问题讨论】:

  • 您能解释一下您是如何“从文件中运行我的代码”的吗?这是双击吗?命令提示符命令? (如果是什么命令)

标签: python tkinter interactive


【解决方案1】:

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

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

【讨论】:

  • 是的。愚蠢的错误。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-12
  • 1970-01-01
相关资源
最近更新 更多