実現したい動作: リストに含まれる番号を表示させたい。
具体的には、空欄に番号を入力して、「追加」をクリックすると、リストにすでに含まれていなければリストに追加して表示。逆に空欄に番号を入力して、「削除」をクリックすると、リストにあればリストから削除して表示。
現状:空欄に番号を入力して、その番号をリストの中に追加したり、番号をリストから削除するように、プログラムを書きましたが、リストの中身をTkinterで表示させる方法が思いつきませんでした。
python
1import datetime 2import tkinter 3 4def show_time(win,Ttext): #現在時刻を表示 5 NOW=datetime.datetime.today() 6 Ttext.set('現在時刻:'+str(NOW.year)+"/"+str(NOW.month).zfill(2)+"/"+str(NOW.day).zfill(2)+"-"+str(NOW.hour).zfill(2)+":"+str(NOW.minute).zfill(2)+":"+str(NOW.second).zfill(2)) 7 win.after(5, lambda : show_time(win, Ttext)) 8 9def add_list(LIST,NUM): 10 if NUM in LIST: 11 pass 12 elif NUM=='': 13 pass 14 else: 15 LIST.append(NUM) 16 print(LIST) 17 18def delete_list(LIST,NUM): 19 if NUM in LIST: 20 list = [x for x in LIST if x != NUM] 21 elif NUM=='': 22 list=LIST 23 else: 24 list=LIST 25 print(list) 26 27def main(): 28 win = tkinter.Tk() 29 win.title("WINDOW") 30 win.geometry("500x300") 31 32 Ttext = tkinter.StringVar() 33 TIME=tkinter.Label(win, textvariable=Ttext) 34 TIME.pack() 35 TIME.after(5,lambda :show_time(win,Ttext)) 36 37 label = tkinter.Label(win, text='番号を入力してください:') 38 label.pack() 39 40 text = tkinter.Entry(win) 41 text.pack() 42 43 LIST=[] 44 Button = tkinter.Button( win , text='追加' , command=lambda : [add_list(LIST,text.get()),text.delete(0, tkinter.END)]) 45 Button.pack() 46 47 Button = tkinter.Button( win , text='削除' , command=lambda : [delete_list(LIST,text.get()),text.delete(0, tkinter.END)]) 48 Button.pack() 49 50 def QUITE(): 51 win.quit() 52 Button = tkinter.Button(win, text='画面を閉じる') 53 Button["command"]=QUITE 54 Button.pack() 55 56 win.mainloop() 57 58 59main()
stringvarを使えばできるかなと考えましたが、自分で考えたり、現状のまま調べても進展がなかったので質問しました。何かヒントになることでも構わないので、教えていただけるとありがたいです。よろしくお願いします。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/03/28 14:34