Frage
Ich versuche, die Methode invoke einen ttk.Button zu verwenden, wie gezeigt bei TkDocs (Blick auf "The Befehl Rückruf" ), aber ich erhalte diesen Fehler:
Attribute: 'NoneType' Objekt hat kein Attribut 'Funktion'
So habe ich versucht, dies in der interaktiven 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
, die zeigt, dass ttk.Button None zurückgibt.
Is ttk.Button gemeint Keine zurückzukehren. Und wenn ja, warum TkDocs sagen, dass es eine Methode invoke?
Lösung
Nein, du bist völlig falsch: Ihr Code tut nicht zeigen, dass ttk.Button
kehrt None
- es zeigt, dass die grid
Methode auf die Schaltfläche Objekt zurückkehrt None
! Sehen Sie nicht, dass Sie anrufen .grid
auf, was auch immer es ist, dass ttk.Button
zurückkehrt (die Schaltfläche Objekt), und es ist das Ergebnis der grid Anruf, dass Sie auf „Button“ sind zuweisen ?!
tut es also rechts statt ...:
button = ttk.Button(root, text="Test")
button.grid(row=0, column=0)
Jetzt können Sie print button
und natürlich die Ergebnisse sehr unterschiedlich sein! -)