1
テキストフィールドの入力に基づいてDataFrame
からリストを取得するボタンを作成しました。ボタンを押すたびに、リストがリフレッシュされます。リスト(OptionMenu
として)を別のFrame
(outputFrame)に出力します。ただし、このボタンを押すたびに、新しいOptionMenu
が(前のものを上書きするのではなく)Frame
に追加されます。ボタンを押すたびに 'ouputFrame'の内容が上書きされるようにするにはどうすればよいですか?Tkinterフレームから要素を削除/上書きする
# start
root = Tkinter.Tk()
# frames
searchBoxClientFrame = Tkinter.Frame(root).pack()
searchButtonFrame = Tkinter.Frame(root).pack()
outputFrame = Tkinter.Frame(root).pack()
# text field
searchBoxClient = Tkinter.Text(searchBoxClientFrame, height=1, width=30).pack()
# function when button is pressed
def getOutput():
outputFrame.pack_forget()
outputFrame.pack()
clientSearch = str(searchBoxClient.get(1.0, Tkinter.END))[:-1]
# retrieve list of clients based on search query
clientsFound = [s for s in df.groupby('clients').count().index.values if clientSearch.lower() in s.lower()]
clientSelected = applicationui.Tkinter.StringVar(root)
if len(clientsFound) > 0:
clientSelected.set(clientsFound[0])
Tkinter.OptionMenu(outputFrame, clientSelected, *clientsFound).pack()
else:
Tkinter.Label(outputFrame, text='Client not found!').pack()
Tkinter.Button(searchButtonFrame, text='Search', command=getOutput).pack()
root.mainloop()