【问题标题】:Tkinter not working in cmd (working in IDLE)Tkinter 不在 cmd 中工作(在 IDLE 中工作)
【发布时间】:2016-07-07 15:41:00
【问题描述】:

我正在尝试显示一个目录选择对话框(用于获取路径,然后用于保存下载的内容)。代码在 IDLE 中运行良好,但是当我尝试在 CMD 中运行它时出现此错误

NameError: name 'Tk' is not defined

我正在为 gui 使用 tkinter。

代码片段

from tkinter import filedialog
root = Tk()
root.withdraw()
filename = filedialog.askdirectory()

使用 Python 3.4.3。有什么帮助/建议吗?

【问题讨论】:

  • 我在 3.4.4 和 3.5.1 中应用的补丁似乎已经修复了这个特定问题,因为现在在 3.5.2 或 3.6.0a2 中从 IDLE 运行的代码会导致 NameError,因为它应该.跟踪器问题是bugs.python.org/issue25507。我希望在 3.6.0 之前完成这个 IDLE 运行代码应该失败的问题,因为隐藏的导入。
  • @TerryJanReedy 感谢您的信息!
  • 我在这里的回答:stackoverflow.com/questions/38806673/… 描述了如何在现有版本中解决此问题。

标签: python cmd tkinter tk


【解决方案1】:

语句from tkinter import filedialog 仅从tkinter 导入filedialog 模块。如果你想要通常的 Tkinter 东西,你也必须导入它。我推荐import tkinter as tk,然后用例如引用它。 root = tk.Tk() 所以你不只是将所有东西都转储到全局命名空间中。或者,如果您真的只想要根对象,请使用 from tkinter import Tk。

from tkinter import Tk
from tkinter import filedialog
root = Tk()
root.withdraw()
filename = filedialog.askdirectory()

【讨论】:

  • 哥们,你是上帝!非常感谢!
猜你喜欢
  • 1970-01-01
  • 2012-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-14
  • 1970-01-01
  • 1970-01-01
  • 2022-12-30
相关资源
最近更新 更多