3

TkDocs「コマンドコールバック」を参照)に示されているように、ttk.Buttonのinvokeメソッドを使用しようとしていますが、次のエラーが発生し続けます。

AttributeError:'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.ButtonがNoneを返すことを示しています。

ttk.ButtonはNoneを返すことを意図していますか。そして、もしそうなら、なぜTkDocsはinvokeメソッドがあると言うのですか?

4

1 に答える 1

14

いいえ、あなたは完全に間違っています:あなたのコードはそれが戻ることを示していませ-それはボタンオブジェクトのメソッドが戻ることを示しています!返されるもの(ボタンオブジェクト)を呼び出しているのがわかりませんか。これは、「ボタン」に割り当てているグリッド呼び出しの結果です。ttk.ButtonNonegridNone.gridttk.Button

代わりに正しく実行してください...:

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

今、あなたはそうすることができますprint button、そしてもちろん結果は非常に異なります!-)

于 2010-01-09T19:15:24.270 に答える