图片内容如下,如何使用tkinter的列表框组件制作一个如图的简易点单界面,我翻了很久都没有看到类似的图表,希望有帅哥美女能帮帮忙,谢谢啦~
该回答引用chatgpt:根据你的需求可以在调整
import tkinter as tk
from tkinter import messagebox
def on_ok():
selected_flavors = listbox.curselection()
if len(selected_flavors) == 0:
messagebox.showinfo("提示", "请选择一个口味!")
else:
index = selected_flavors[0]
flavor = flavors[index]
messagebox.showinfo("选择口味", f"您选择了口味:{flavor}")
def on_cancel():
messagebox.showinfo("提示", "您取消了选择口味。")
# 口味列表
flavors = ["香草", "巧克力", "草莓"]
#############
# 创建主窗口
window = tk.Tk()
window.title("冰淇淋点单")
# 创建按钮框架
button_frame = tk.Frame(window)
# 创建标签
label = tk.Label(button_frame, text="你喜欢吃什么口味的冰淇淋?")
label.pack(side=tk.LEFT, padx=10, pady=10)
# 创建按钮
button1 = tk.Button(button_frame, text="OK",command=on_ok)
button1.pack(pady=5)
button2 = tk.Button(button_frame, text="Cancel",command=on_cancel)
button2.pack(pady=5)
button_frame.pack(side=tk.TOP, fill=tk.X,padx=10, pady=10)
############
# 创建主窗口
# window = tk.Tk()
# window.title("冰淇淋点单")
# # 创建标签
# label = tk.Label(window, text="你喜欢吃什么口味的冰淇淋?")
# label.pack()
# 创建框架
frame = tk.Frame(window)
frame.pack(side=tk.TOP,fill=tk.X, padx=20, pady=10)
# 创建列表框
listbox = tk.Listbox(frame, width=30)
for flavor in flavors:
listbox.insert(tk.END, flavor)
listbox.pack(side=tk.LEFT, padx=10, pady=5)
# 运行主循环
window.mainloop()
回答:
针对你的问题,如何使用tkinter的列表框组件来制作一个类似于提供的图片的简易点单界面,可以按照以下步骤实现:
import tkinter as tk
root = tk.Tk()
root.title("点单")
menu = tk.Listbox(root, selectmode = "multiple", width = 30, height = 15)
menu.pack(side = "left", padx = 10, pady = 10)
menu_items = [("水煮鱼", 25), ("宫保鸡丁", 20), ("麻婆豆腐", 18), ("蒜泥白肉", 15), ("辣子鸡", 22)]
for item in menu_items:
menu.insert(tk.END, item[0]+"-"+str(item[1])+"元")
price_label = tk.Label(root, text = "总价:0元")
price_label.pack(side = "top", padx = 10, pady = 10)
def calculate_price():
total_price = 0
selected_items = menu.curselection() # 获取已选择的菜品项的索引
for i in selected_items:
total_price += menu_items[i][1] # 累加已选择菜品的价格
price_label.config(text = "总价:"+str(total_price)+"元")
calc_btn = tk.Button(root, text = "计算总价", command = calculate_price)
calc_btn.pack(side = "bottom", padx = 10, pady = 10)
root.mainloop()
这样,一个简易点单界面就完成了,可以通过选择菜品并点击计算总价按钮来计算已选择菜品的总价格。