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?

¿Fue útil?

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 -)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top