ttk.Button 返回 None
我在尝试使用ttk.Button的invoke方法,具体可以参考TkDocs上的内容(看看“命令回调”那一部分),但是我一直遇到这个错误:
AttributeError: 'NoneType'对象没有'invoke'这个属性
所以,我在交互式命令行中试了这个:
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 个回答
14
不,你完全错了:你的代码并没有显示 ttk.Button
返回的是 None
-- 而是显示按钮对象的 grid
方法返回的是 None
!你难道没注意到你是在调用 ttk.Button
返回的那个东西(按钮对象)的 .grid
方法吗?你把这个 grid 调用的结果赋值给了 "button" 吗?!
所以,正确做法是...:
button = ttk.Button(root, text="Test")
button.grid(row=0, column=0)
现在你可以 print button
,当然结果会大不相同!-)