关于python:ttk.Button返回None

ttk.Button returns None

我尝试使用ttk.button的invoke方法,如tkdocs中所示(请看"命令回调"),但我一直收到以下错误:

AttributeError: 'NoneType' object has no attribute 'invoke'

所以,我在交互式shell中尝试过:

1
2
3
4
5
6
7
8
9
10
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没有返回。

是TTK。按钮表示不返回。如果是这样,为什么tkdocs说有一个invoke方法?


不,你完全错了:你的代码没有显示ttk.Button返回None--它显示按钮对象上的grid方法返回None!你没看到你在调用EDOCX1[0]返回的对象(button对象)上的EDOCX1[4]吗,这是你分配给"button"的网格调用的结果?!

所以要做对了……:

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

现在您可以使用print button,当然结果会非常不同!-)