You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 10:18:04