質問

に示すように、

私は、ttk.Buttonのinvokeメソッドを使用しようとしていますTkDocsするの "コマンドコールバック" のを見て)、私はこのエラーを取得しておいてください。

  

はAttributeError: 'NoneType' オブジェクトが属性を持っていません。

'起動'

だから、私は、インタラクティブシェルでこれを試します:

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メソッドがあることを言うのでしょうか?

役に立ちましたか?

解決

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

だから... ...右の代わりにそれを行います

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top