Закрытие окна TK после нажатия кнопки (независимо от кнопки), пока кнопка все еще выполняет свое действие - PullRequest
0 голосов
/ 28 ноября 2018

Я пытаюсь, чтобы окно Tk выполняло функцию при нажатии кнопки, и оно автоматически закрывалось.Я предполагаю, что мне нужна какая-то функция 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)

1 Ответ

0 голосов
/ 28 ноября 2018

Я нашел исправление.

Я изменяю Add_results на:

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

И это сработало!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...