您可以做的是将 runn 函数集成到类中并更新类变量(如下例所示,self.winner 为获胜者,self.display_winner 为您要显示的标签);
import tkinter as tk
import random
from progress.bar import Bar
backroundcolor = '#C46C6C'
class Application(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.winner = None
self.display_winner = None
self.geometry('500x500')
self.title('TheXoGenie')
self.configure(bg=backroundcolor)
title = tk.Label(self, text="Welcome to TheXoGenie", font='Helvetica 18 bold', bg=backroundcolor)
title.pack(pady= 2, padx= 2)
run = tk.Button(self, text ="Run", command = self.runn)
run.pack(pady= 5, padx = 5)
def runn(self):
PEOPLE = [
'Juan',
'Owen'
]
self.winner = random.choice(PEOPLE)
if self.display_winner:
self.display_winner.destroy()
self.display_winner = tk.Label(self, text="The winner is " + self.winner + "!!!", font='Helvetica 32 bold', bg=backroundcolor)
self.display_winner.pack(pady= 10, padx= 2)
app = Application()
app.mainloop()
我们检查我们是否已经显示了获胜者,如果是,我们删除标签并创建一个新标签。如果不是,我们只需为获胜者添加新标签。如果我们不检查这一点,标签将继续在窗口中堆叠。
如果你想检查新的获胜者和旧的获胜者,你只需添加另一个变量并检查新的获胜者是否与旧的获胜者匹配;
import tkinter as tk
import random
from progress.bar import Bar
backroundcolor = '#C46C6C'
class Application(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.winner = None
self.display_winner = None
self.old_winner = None
self.geometry('500x500')
self.title('TheXoGenie')
self.configure(bg=backroundcolor)
title = tk.Label(self, text="Welcome to TheXoGenie", font='Helvetica 18 bold', bg=backroundcolor)
title.pack(pady= 2, padx= 2)
run = tk.Button(self, text ="Run", command = self.runn)
run.pack(pady= 5, padx = 5)
def runn(self):
PEOPLE = [
'Juan',
'Owen'
]
self.winner = random.choice(PEOPLE)
if self.display_winner:
self.display_winner.destroy()
if self.winner == self.old_winner:
self.display_winner = tk.Label(self, text="The winner is " + self.winner + " again!!!", font='Helvetica 24 bold', bg=backroundcolor)
else:
self.display_winner = tk.Label(self, text="The winner is " + self.winner + "!!!", font='Helvetica 24 bold', bg=backroundcolor)
self.display_winner.pack(pady= 10, padx= 2)
self.old_winner = self.winner
app = Application()
app.mainloop()