Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Error in a minimal tkSimpleDialog example

Tags:

python

tkinter

I was trying out a python code example at Rosetta Code - a programming chrestomathy site, where solutions to the same task are presented in as many different programming languages as possible. For this task, the goal is to input a string and the integer 75000, from graphical user interface. The code is shown below:

import tkSimpleDialog

number = tkSimpleDialog.askinteger("Integer", "Enter a Number")
string = tkSimpleDialog.askstring("String", "Enter a String")

However, when I try to run the code, I get the following error:

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'

Where could the problem be?

Thanks

like image 213
engineervix Avatar asked Apr 18 '12 08:04

engineervix


1 Answers

The error message is telling you that the dialog needs a parent window.

With Python 2.x, you create the root window with:

import tkinter
from tkinter import simpledialog
root = tkinter.Tk()

To hide the root window if you don't want it, use:

root.withdraw()

See the Python Tkinter Docs for more info.

like image 143
agf Avatar answered Nov 13 '22 04:11

agf