私が取り組んでいる組み込みハードウェアシステムの設定ファイルを読み込んで解析するプログラムで作業しています。私はこのファイルを読み書きするための簡単なGUIを作るためにtkinterとpythonを使用しようとしています。ファイルI/Oがあり、解析がほとんど機能していますが、すべての部分をGUIに統合するのに問題があります。私は、デバイスの情報を読んで、入力フィールドに関連情報を入力したいと思います。私がいる問題は、私は、私はApplicationクラスの外に置く場合、私はそれが機能を見つけるために取得することができ、エラーTkinterボタンがコールバックコマンドを見つけることができません
"in initUI
opnBut = Button(butFrm, text="Open", command=openCfg)
NameError: name 'openCfg' is not defined"
を得続けるが、その後、私は内部のフィールドを参照する方法を見つけ出すことはできませんです私はそれらを更新するために作ったウィンドウ。
ご協力いただければ幸いです。私のコードセグメントは以下に含まれています。
class Application(Frame):
def openCfg():
name = getNameFromFile()
nameEntry.insert(0, name)
def __init__(self, parent):
Frame.__init__(self, parent)
self.parent = parent
self.initUI()
def initUI(self):
self.parent.title("Config Reader")
self.pack(fill=BOTH, expand=True)
nameFrm = Frame(self)
nameFrm.pack(fill=X)
nameLbl = Label(nameFrm, text="Device Name",width=20)
nameLbl.pack(side=LEFT,padx=5, pady=5)
nameEntry = Entry(nameFrm)
nameEntry.pack(fill=X, padx=5, pady=5)
butFrm = Frame(self)
butFrm.pack(fill=X)
opnBut = Button(butFrm, text="Open Cfg", command=openCfg)
opnBut.pack(fill=X, padx=5,pady=5)
root = Tk()
root.geometry("600x600")
app = Application(root)
app.mainloop()
インデントが正しく – Li357
私はあなたが 'self.openCfg'が、意味を考える(アンドリューが言ったように)、これは本当にそれであれば、あなたのコードがIndentationErrorをスローしていました。 – zondo