我正在尝试使用ttk.Button的invoke方法,如TkDocs所示(查看“The Command Callback”),但我不断收到此错误:< / p>
AttributeError:'NoneType'对象没有属性'invoke'
所以,我在Interactive Shell中尝试了这个:
ActivePython 3.1.1.2 (ActiveState Software Inc.) based on
Python 3.1.1 (r311:74480, Aug 17 2009, 12:30:13) [MSC v.1500 32 bit (Intel)] on
win32
>>> from tkinter import *
>>> import tkinter.ttk as ttk
>>> root = Tk()
>>> button = ttk.Button(root, text="Test").grid(row=0, column=0)
>>> print(button)
None
这表明ttk.Button返回None。
ttk.Button是否意味着返回None。如果是这样,为什么TkDocs会说有一个invoke方法?
答案 0 :(得分:12)
不,你完全错了:你的代码不显示ttk.Button
返回None
- 它显示按钮上的grid
方法对象返回None
!难道你没有看到.grid
正在调用ttk.Button
返回的任何内容(按钮对象),而这是网格调用你的结果重新分配“按钮”?!
所以改为正确......:
button = ttk.Button(root, text="Test")
button.grid(row=0, column=0)
现在你可以print button
,当然结果将会大不相同! - )