Tkinter如何实现点击按钮后在Label展示OptionMenu选中的订单内容
解决方法
你需要补充显示结果的Label控件,以及实现点击按钮触发的回调逻辑,修改方案如下:
- 在
order_menu方法内新增结果展示Label,放在页面合适位置用于显示订购提示 - 编写
callback方法读取两个下拉菜单的选中值,拼接提示内容后更新Label的文本属性
修改后的完整代码参考:
food = ['Pizza','Burger','Nachos', 'French Toast'] drinks = ['Pepsi','Lemonade','Tea', 'Aperitivo Spritz'] def order_menu(self): self.myFrame2.destroy() self.myFrame4 = Frame(root) self.myFrame4.pack(fill = "both", expand = 1) self.tkvar = StringVar(self.myFrame4) self.tkvar.set("Food") self.tkvar2 = StringVar(self.myFrame4) self.tkvar2.set("Drinks") self.foodMenu = OptionMenu(self.myFrame4, self.tkvar, *food) self.foodMenu.place(x = 160, y = 110) self.drinkMenu = OptionMenu(self.myFrame4, self.tkvar2, *drinks) self.drinkMenu.place(x = 385, y = 110) self.order_btn78 = PhotoImage(file = r'new-dip-project\orderb.png') self.order_btn = Button(self.myFrame4, image = self.order_btn78, command = self.callback, bd = 0) self.order_btn.place(x = 302, y = 160) # 新增用于显示订购结果的Label self.result_label = Label(self.myFrame4, text="", font=("微软雅黑",12)) self.result_label.place(x = 260, y = 220) def callback(self): selected_food = self.tkvar.get() selected_drink = self.tkvar2.get() # 可选:添加未选择校验逻辑 if selected_food == "Food" or selected_drink == "Drinks": self.result_label.config(text="请先完成食品和饮品的选择") else: self.result_label.config(text=f"您已订购{selected_food}和{selected_drink}")
提示:原代码中给OptionMenu绑定的trace打印逻辑、下拉菜单自带的command回调如果没有其他用途可以直接删除,只保留按钮的command绑定即可,避免重复触发回调。
内容的提问来源于stack exchange,提问作者beginner
相关产品推荐
相关产品推荐

