Question

Je suis en train d'utiliser la méthode invoke de ttk.Bouton, comme indiqué à TkDocs (regardez "La Commande De Rappel"), mais j'obtiens cette erreur:

AttributeError:'NoneType' object n'a pas d'attribut 'appeler'

Donc, j'ai essayé ceci dans le Shell Interactif:

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

Ce qui montre que ttk.Bouton renvoie None.

Est ttk.Bouton destiné à retour Aucun.Et, si oui, pourquoi ne TkDocs dire qu'il y a une méthode invoke?

Était-ce utile?

La solution

Non, vous êtes tout à fait tort:votre code ne pas montrer que ttk.Button retourne None -- il montre que l' grid méthode sur le bouton de l'objet renvoie None!Ne voyez-vous pas que vous êtes d'appel .grid sur ce qu'il est que ttk.Button retourne (le bouton de l'objet), et c'est le résultat de cette grille appel que vous attribuez à "bouton"?!

Afin de faire droit à la place...:

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

maintenant, vous pouvez print button et bien sûr, les résultats seront très différents!-)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top