前提・実現したいこと
リセットボタンを実装し,変数をリセットしたい。
リセットボタンを押すと、合計と注文を初期状態に戻したい
具体的にはGOKの値と*_Howの値をリセットし、各表示も消したいです。
発生している問題・エラーメッセージ
NameError: name 'clear' is not defined
該当のソースコード
Python3
1import tkinter as tk 2from tkinter import ttk 3import tkinter.font as tkFont 4 5root = tk.Tk() 6root.title("Tech") 7 8 9root.geometry("1024x600") 10 11 12frame1=tk.LabelFrame(root, width=480, height=500, text="メニュー") 13frame1.place(x=0,y=0) 14 15frame2=tk.LabelFrame(root, width=213, height=400, text="注文内容") 16frame2.place(x=780,y=0) 17frame2.grid_propagate(0) 18 19frame3=tk.LabelFrame(root,width=213, height=100, text="合計金額") 20frame3.place(x=780,y=413) 21frame3.grid_propagate(0) 22 23frame4=tk.LabelFrame(root, width=765, height=80, text="Control") 24frame4.place(x=0,y=515) 25frame4.grid_propagate(0) 26 27 28a_notebook = ttk.Notebook(frame1, width=760, height=400) 29tab1 = ttk.Frame(a_notebook) 30 31a_notebook.add(tab1, text = '麺') 32 33a_notebook.grid() 34 35 36UDN_How = 0 37UDN_Var = tk.StringVar(value="") 38SOBA_How = 0 39SOBA_Var = tk.StringVar(value="") 40 41 42GOK = 0 43GOK_Var = tk.StringVar(value="合計" + str(GOK) + "円") 44 45 46def UDNcom(): 47 global UDN_How 48 UDN_How = UDN_How + 1 49 50 global GOK 51 GOK = GOK + 200 52 53 UDN_Var.set("うどん 200円" + str(UDN_How) + "個") 54 GOK_Var.set("合計" + str(GOK) + "円") 55 56 57def SOBAcom(): 58 global SOBA_How 59 SOBA_How = SOBA_How + 1 60 61 global GOK 62 GOK = GOK + 200 63 64 SOBA_Var.set("そば 200円" + str(SOBA_How) + "個") 65 GOK_Var.set("合計" + str(GOK) + "円") 66 67#tab1 68UDN = tk.Button(tab1, command=UDNcom, text="うどん\n¥200") 69UDN.grid() 70 71SOBA = tk.Button(tab1, command=SOBAcom, text="そば\n¥200") 72SOBA.grid() 73 74#Label 75UDN_Lab = tk.Label(frame2, textvariable=UDN_Var) 76UDN_Lab.grid() 77 78SOBA_Lab = tk.Label(frame2, textvariable=SOBA_Var) 79SOBA_Lab.grid() 80 81############################### 82def RSTcom(): 83 clear(GOK) 84 85 86RST = tk.Button(frame4, command=RSTcom, text="リセット") 87RST.grid() 88################################## 89 90 91GOK_Lab = tk.Label(frame3, textvariable=GOK_Var) 92GOK_Lab.grid() 93 94 95root.mainloop()
試したこと
リセットボタンを押した際にGOKをクリアしようとした
補足情報(FW/ツールのバージョンなど)
Win10
Python3
Tkinter
Atom
いきなり答えを変えてしまうと勉強にならないかもしれないので伺います。
値をリセットしたいのは、GOK だけではないですよね?UDN_How、SOBA_How もリセットしたいですよね。
さらに画面表示も該当部分は消したいのですよね?
まず、変数の目的を整理して、追記してみてはいかがですか?
あと、clear って何のクリアのつもりで使ってますか?
仰る通りでございます。
GOKと*_Howの値をリセットし、該当部分の画面表示を消したいです。
GOKをリセットするつもりでclear(GOK)と打ち込んでいますが、根本的に間違っているようです
GOK や *_How を初期化する時は、どうしていたか振り返ってみてください。
0や""で置き換えてみましたが初期化されませんでした
def RSTcom():
GOK_Lab = ""
GOK_Lab = 0
UDN_Lab = ""
UDN_Lab = 0
ラベルには、UDN_Var とか、変数と関連付けてませんでしたっけ?
Varは個数の更新用だった気がします
回答3件
あなたの回答
tips
プレビュー