ttk.Кнопка возвращает None
Вопрос
Я пытаюсь использовать метод вызова ttk.Кнопка, как показано на TkDocs (посмотрите на "Обратный вызов команды"), но я продолжаю получать эту ошибку:
Ошибка атрибута:Объект '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.Кнопка возвращает None.
Является ttk.Кнопка предназначена для возврата None.И, если да, то почему TkDocs говорит, что существует метод invoke?
Решение
Нет, вы совершенно не правы:ваш код делает не покажи это ttk.Button
ВОЗВРАТ None
-- это показывает , что grid
метод на объекте button возвращает None
!Разве ты не видишь, что ты зовешь .grid
на чем бы это ни было , что ttk.Button
возвращает (объект button), и это результат этого сетка вызов, который вы присваиваете "кнопке"?!
Так что вместо этого делай это правильно...:
button = ttk.Button(root, text="Test")
button.grid(row=0, column=0)
теперь вы можете print button
и, конечно, результаты будут совсем другими!-)