所以我正在使用python shell跟踪tkinter上的t教程。所有导入都有效,但在ttk.Button对象上尝试一些方法和属性会产生上述错误,即使它与教程中的完全相同。即:
该按钮具有变量'按钮'。检查按钮的文字'属性使用button['text']
抛出错误并通过button.config(text = 'text')
设置按钮的文本属性也会引发错误,就像检查根窗口上的config()一样。导入的初始代码以第一个错误产生线结束,为:
>>> from tkinter import *
>>> from tkinter import ttk
>>> root = Tk()
>>> button = ttk.Button(root, text = 'Button')
>>> button.pack()
>>> button['text']
基本上设置或获取按钮或其他ttk对象的text属性会引发错误。
这里有错误的一行:
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
button['text']
File "C:\Users\USER\AppData\Local\Programs\Python\Python36\lib\tkinter\__init__.py", line 1483, in cget
return self.tk.call(self._w, 'cget', '-' + key)
_tkinter.TclError: invalid command name ".!button"
实际上,根据使用python 3的教程,Button确实有一个属性文本。
编辑。我将错误消息与相关的消息交换,
答案 0 :(得分:1)
这是因为小部件没有变量&#34; text
&#34;。相反,窗口小部件的选项存储在字典中。
当您使用button["text"]
时,您正在访问该项目&#34; text&#34;在字典中,所以它返回&#34; text&#34;的值。键。您也可以使用cget
方法获取选项。
最好从configure
方法访问此值词典。使用没有参数的所述方法将返回小部件的所有选项的字典。