如何用tkinter列表框组件制作一个简易点单界面?(语言-python)

图片内容如下,如何使用tkinter的列表框组件制作一个如图的简易点单界面,我翻了很久都没有看到类似的图表,希望有帅哥美女能帮帮忙,谢谢啦~

img

img

该回答引用chatgpt:根据你的需求可以在调整

img

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()


  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7619245
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:Python中利用tkinter模块制作一个简单的自我介绍窗口
  • 除此之外, 这篇博客: python解决tkinter制作桌面应用会出现卡死问题的解决方法中的 卡死现象: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 在这里插入图片描述

  • 您还可以看一下 Toby老师的Python入门经典(2K超清)课程中的 tkinter入门讲解小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    回答:

    针对你的问题,如何使用tkinter的列表框组件来制作一个类似于提供的图片的简易点单界面,可以按照以下步骤实现:

    1. 导入tkinter模块,并创建一个窗口
    import tkinter as tk
    
    root = tk.Tk()
    root.title("点单")
    
    1. 创建一个菜单列表框,可以使用tkinter的Listbox组件,设置其多选为True,将其添加到窗口中,并设置其大小和位置
    menu = tk.Listbox(root, selectmode = "multiple", width = 30, height = 15)
    menu.pack(side = "left", padx = 10, pady = 10)
    
    1. 添加菜单项,可以使用Listbox组件的insert()方法添加每个菜单项,这里可以将菜单项定义为一个列表,包括菜品名和价格
    menu_items = [("水煮鱼", 25), ("宫保鸡丁", 20), ("麻婆豆腐", 18), ("蒜泥白肉", 15), ("辣子鸡", 22)]
    
    for item in menu_items:
        menu.insert(tk.END, item[0]+"-"+str(item[1])+"元")
    
    1. 创建一个价格标签,在窗口中设置一个文本组件,用于显示已选择的菜品的总价格
    price_label = tk.Label(root, text = "总价:0元")
    price_label.pack(side = "top", padx = 10, pady = 10)
    
    1. 定义一个按钮回调函数,用于计算已选择的菜品的总价格,并在价格标签中显示总价
    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)
    
    1. 启动窗口的消息循环
    root.mainloop()
    

    这样,一个简易点单界面就完成了,可以通过选择菜品并点击计算总价按钮来计算已选择菜品的总价格。