Python tkinter 在spyder 中工作,但在 shell 中缺少属性(simpledialog)

问题描述 投票:0回答:1

我创建了一个简单的 python 脚本来打开一个简单的对话框。它在spyder中有效,但当我在shell中运行命令时则无效。

我正在运行 Linux Mint。我用 Anaconda 的 miniconda 安装了 Spyder。

这是我的代码:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import tkinter as tk
tkwin = tk.Tk()
tkwin.withdraw()
mytext = tk.simpledialog.askstring("A Simple Dialog Box", "Enter some text:", parent=tkwin)

在 Spyder 中,我看到对话框。在 shell 中运行时,我运行 python 并输入相同的 Python 命令,但出现错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'tkinter' has no attribute 'simpledialog'

我确认我在 Spyder 和脚本中运行相同的 Python。

有趣的是,spyder 中的

print(dir(tk))
显示 simpledialog,但 shell 中的
print(dir(tk))
则不显示。如果我在 Spyder 的控制台中输入
tk
,我会得到

<module 'tkinter' from '/home/keith/Apps/miniconda3/lib/python3.12/tkinter/__init__.py'>

在 shell 中我得到同样的东西。这是怎么回事?我该如何解决? 谢谢, 基思

python tkinter attributes spyder linux-mint
1个回答
0
投票

您缺少

tkinter.simpledialog
模块。

片段:

import tkinter as tk
import tkinter.simpledialog #<== Add to module
tkwin = tk.Tk()
tkwin.withdraw()
mytext = tk.simpledialog.askstring("A Simple Dialog Box", "Enter some text:", parent=tkwin)
© www.soinside.com 2019 - 2024. All rights reserved.