ttk.Button返回None

时间:2010-01-09 19:11:08

标签: python tkinter ttk

我正在尝试使用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方法?

1 个答案:

答案 0 :(得分:12)

不,你完全错了:你的代码显示ttk.Button返回None - 它显示按钮上的grid方法对象返回None!难道你没有看到.grid正在调用ttk.Button返回的任何内容(按钮对象),而这是网格调用你的结果重新分配“按钮”?!

所以改为正确......:

button = ttk.Button(root, text="Test")
button.grid(row=0, column=0)

现在你可以print button,当然结果将会大不相同! - )