我在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)
问题出在哪里?
谢谢
我有一个简单的tkinter窗口.它由一个小窗口,一个计时器和一个设置计时器的按钮组成.我不想详细介绍代码.
我想更改窗口中所有小部件的背景(按钮,标签等).
我的第一个想法是使用我将设置的全局变量"red",并将所有窗口小部件background选项与全局变量关联.然后,按下按钮我将全局变量更改为"green"(以便所有小部件的背景更改)但没有任何反应.
我的理解是窗口.mainloop()的更新.如何在不重新启动应用程序的情况下更改变量时,如何使用小部件更改背景颜色?

这是我使用Python Tkinter编写的程序的屏幕截图.我使用ttk.Entrywidget来获取用户输入.
我想知道如何将输入置于中心Entry(如您所见,输入现在卡在小部件的左侧部分)
代码是这样的:
myVar = StringVar()
myEntry = Entry(master, textvariable=myVar)
Run Code Online (Sandbox Code Playgroud)
因此,当我需要从 检索输入时myEntry,我应该使用
myText = myVar.get()
Run Code Online (Sandbox Code Playgroud)
或者
myText = myEntry.get()
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法 ?(为什么?)
我将新窗口(Tk.Toplevel)的打开绑定在按钮上。但是,如果我按两次按钮,则会打开两个窗口。我可以停用按钮直到新窗口关闭,或者如果按两次按钮则显示消息框吗?