最小tkSimpleDialog示例中的错误

eng*_*vix 10 python tkinter

我在Rosetta Code上尝试了一个python代码示例- 一个编程的chrestomathy站点,其中相同任务的解决方案以尽可能多的不同编程语言呈现.对于此任务,目标是从图形用户界面输入字符串和整数75000.代码如下所示:

import tkSimpleDialog

number = tkSimpleDialog.askinteger("Integer", "Enter a Number")
string = tkSimpleDialog.askstring("String", "Enter a String")
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试运行代码时,我收到以下错误:

Traceback (most recent call last):
  File "C:\Users\vix\Documents\.cache\GUIexample.py", line 3, in <module>
    number = tkSimpleDialog.askinteger("Integer", "Enter a Number")
  File "C:\Python27\lib\lib-tk\tkSimpleDialog.py", line 262, in askinteger
    d = _QueryInteger(title, prompt, **kw)
  File "C:\Python27\lib\lib-tk\tkSimpleDialog.py", line 189, in __init__
    Dialog.__init__(self, parent, title)
  File "C:\Python27\lib\lib-tk\tkSimpleDialog.py", line 53, in __init__
    if parent.winfo_viewable():
AttributeError: 'NoneType' object has no attribute 'winfo_viewable'
Run Code Online (Sandbox Code Playgroud)

问题出在哪里?

谢谢

agf*_*agf 16

错误消息告诉您对话框需要父窗口.

使用Python 2.x,您可以使用以下命令创建根窗口:

import tkinter
from tkinter import simpledialog
root = tkinter.Tk()
Run Code Online (Sandbox Code Playgroud)

要隐藏根窗口(如果不需要),请使用:

root.withdraw()
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅Python Tkinter文档.