ttk.Button devuelve None
Pregunta
Estoy tratando de utilizar el método de invocación de un ttk.Button, como se muestra en TkDocs (miro "El Comando de devolución de llamada" ), pero sigo recibiendo este error:
AttributeError: objeto 'NoneType' no tiene atributo 'invocar'
Por lo tanto, he intentado esto en el intérprete interactivo:
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
Lo que demuestra que ttk.Button devuelve None.
Es ttk.Button la intención de volver Ninguno. Y, si es así, ¿por qué TkDocs dicen que hay un método de invocación?
Solución
No, estás del todo mal: su código hace no muestran que los rendimientos ttk.Button
None
- que muestra que el método grid
en el objeto de botón vuelve None
! ¿No ves que está llamando .grid
en lo que sea que ttk.Button
retornos (el objeto de botón), y es el resultado de que rejilla llamar que está asignando a "botón" ?!
Así que hacerlo bien en su lugar ...:
button = ttk.Button(root, text="Test")
button.grid(row=0, column=0)
Ahora puedes print button
y, por supuesto, los resultados serán muy diferentes -)