我已经查看了许多问题和答案:
没有人提供必要的信息或能够回答我的问题。
这是我的应用程序中的一门课。当用户按下“墨西哥”按钮作为上一页中的食物选择时,将调用此窗口。在此页面上,向用户显示3个选项,
我的问题是“再次尝试”选项。我尝试了Tk.update,创建了刷新功能,调用了lamba函数,例如command=lambda: controller.show_frame(MexicanRest)
,但是没有什么刷新当前页面,并允许再次调用mex_choice = random.choice(mexican_rest)
命令并从菜单中选择一个新餐厅。 mexican_rest
列表已定义。
您会看到我在哪里标记了“#这里将刷新什么?” 请告知...
class MexicanRest(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
label = tk.Label(self, text="Mexican Restaurant",
font=('century gothic', 24))
label.pack(pady=10, padx=10)
mex_choice = random.choice(mexican_rest)
label = tk.Label(self,
text="How does %s sound? " %mex_choice,
bg='yellow',
font=('times', 24),
fg='red')
label.pack()
button1 = tk.Button(self,
text='YES',
width=20,
command=quit)
button1.pack(fill=tk.BOTH)
button2 = tk.Button(self,
text='TRY AGAIN',
width=20,
command=self.refresh) #WHAT GOES HERE TO REFRESH???
button2.pack(fill=tk.BOTH)
button3 = tk.Button(self,
text='I Don\'t Want Mexican Anymore',
#width=20,
command=lambda: controller.show_frame(StartPage))
button3.pack(fill=tk.BOTH)
def refresh(self):
MexicanRest.update(self)
答案 0 :(得分:1)
您需要做两件事:
对于您而言,第一步是为要刷新的标签创建属性。例如:
self.choice_label = tk.Label(self,
text="How does %s sound? " %mex_choice,
bg='yellow',
font=('times', 24),
fg='red')
self.choice_label.pack()
接下来,创建一个更新标签的函数:
def refresh(self):
mex_choice = random.choice(mexican_rest)
self.choice_label.configure(text="How does %s sound? " %mex_choice)