1

私は Tkinter と Python 3.3 の両方が初めてで、シンプルな GUI を開発しようとしています。「statusLabel」というラベルがあります。ボタンをクリックすると、ボタンのコールバックでラベルの値を更新したいのですが、エラーが発生しています。

line 12, in reportCallback
    statusLabel.config(text="Thank you. Generating report...")
AttributeError: 'NoneType' object has no attribute 'config'

以下は私のコードです

from tkinter import *
root = Tk()

Label(root,text="Project folders. Include full paths. One project per line").pack()
Text(root,height=4).pack()
Label(root,text="Standard project subfolders. Include path from project.").pack()
Text(root,height=4).pack()

statusLabel = Label(root,text="Oh, hello.").pack()

def reportCallback():
    statusLabel.config(text="Thank you. Generating report...")

b = Button(root, text="Generate Report", command=reportCallback).pack()

root.mainloop()
4

1 に答える 1

2

この行が問題です:

statusLabel = Label(root,text="Oh, hello.").pack()

.pack()戻りますNone。おそらく、作成したばかりのオブジェクトstatusLabelへの参照を保持したいでしょう。Label

代わりにこれを試してください:

statusLabel = Label(root,text="Oh, hello.")
statusLabel.pack()

たとえば、最初のリストの簡単なプログラムを参照してください: http://effbot.org/tkinterbook/label.htm

于 2013-03-20T16:15:03.990 に答える