按下按钮后关闭TK窗口(无论按钮如何),同时按钮仍在执行其操作



我正试图让我的Tk窗口在按下按钮时执行一个功能,它们会自动关闭。我想我需要在action函数中使用某种destroy((函数,但我不知道如何使用它

以下是我尝试做的

import pandas as pd
from tkinter import *
import numpy as np
from functools import partial

伪数据

test = pd.DataFrame(columns = ["id", 'sent', "O1", "O2", "O3", "O4"])
results = []
for i in range(5):
test.loc[i,:] = [i,"this is test "+ str(i), .2, .5, .1, .1]
levels = [["Baby"], ["Dinos"], ["bad"], ["Spoons"]]
### 

这就是我希望它采取的行动。它需要记录按下的内容,然后删除该窗口。我想这就是destroy((函数需要去的地方,但我不知道该怎么说

def Add_results(option):
results.append(option)

我的窗户制造商

def Window_maker(sent, choices):
root = Tk()
topFrame = Frame(root)
topFrame.pack()
botFrame = Frame(root)
botFrame.pack()
label = Label(topFrame, text =sent)
label.pack()
indi= 0
button1 = Button(botFrame, text = choices[0], command = lambda: Add_results(option = choices[0]))
button1.pack()
button2 = Button(botFrame, text = choices[1], command = lambda: Add_results(option = choices[1]))
button2.pack()
root.mainloop()
return(results)

的实施

for i in range(test.shape[0]):
index = get_params(test.iloc[i, 2:])
choices = [levels[x] for x in index.values]
pred = Window_maker(test.iloc[i,1], choices)

我找到了一个修复程序。

我将Add_results更改为:

def Add_results(option):
results.append(option)
root.quit()

它成功了!

最新更新