ttk.Button 返回 None。

3
我正在尝试使用ttk.Button的invoke方法,如在TkDocs中所示(查看“命令回调函数”),但我一直收到此错误:

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

因此,我在交互式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方法?

2
值得一提的是,这也会发生在非ttk小部件上,如果您使用pack而不是grid - Kevin
1个回答

14
不,你完全错了:你的代码并没有显示ttk.Button返回了None,而是显示按钮对象上的grid方法返回了None!你看不出来吗?你在调用ttk.Button返回的东西(即按钮对象)上的.grid,然后将该grid调用的结果分配给“button”变量!
所以请改正你的代码...:
button = ttk.Button(root, text="Test")
button.grid(row=0, column=0)

现在你可以打印按钮,而且结果肯定会非常不同!-)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接