Текст метки Tkinter не обновляется / не перезаписывается - PullRequest
0 голосов
/ 25 октября 2018
from Tkinter import *

self.btn_run = Button(window, text="Run Model", command=self.clicked_run)
self.btn_run.grid(column=2, row=6)
self.lbl_finish = Label(window, text="")
self.lbl_finish.grid(column=2, row=7)


# Submit button for run model
def clicked_run(self):        
    self.lbl_finish.configure(text="")

    if len(train_SKU) == 0 or len(test_SKU) == 0:
        tkMessageBox.showinfo('ERROR', 'Train or Test is empty!')
    else:
        train_model() # trains the machine learning model
        self.lbl_finish.configure(text="Finished!")

По сути, у меня есть кнопка «Запустить модель», которая запускает мою модель машинного обучения.После того, как это будет сделано, я хочу получить текст с надписью "Закончено!"под кнопкой.Когда кнопка «Run Model» нажата снова, я хочу «Готово!»текст, чтобы очистить и показать только когда модель ML заканчивается.Однако, прямо сейчас, после первого «Готово!»появляется, он не исчезнет даже после повторного нажатия кнопки «Run Model».

1 Ответ

0 голосов
/ 25 октября 2018

Вы можете использовать StringVariable и обновить окно

import tkinter as tk
from time import sleep

window = tk.Tk()

var = tk.StringVar()
var.set('')
lbl_finish = tk.Label(window, textvariable=var)
lbl_finish.grid(column=2, row=7)

def clicked_run():
    var.set('')
    window.update()
    sleep(5)
    var.set('Finshed')

btn_run = tk.Button(window, text="Run Model", command=clicked_run)
btn_run.grid(column=2, row=6)

if __name__ == '__main__':
    window.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...