基于new bing加以修改后的编写:
from tkinter import *
class IceCreamOrder:
def __init__(self, master):
self.master = master
master.title("Ice Cream Order")
# 创建"您喜欢吃什么口味的冰淇淋"标签
self.label_flavor = Label(master, text="您喜欢吃什么口味的冰淇淋?")
self.label_flavor.grid(row=0, columnspan=3)
# 创建三个口味按钮
self.btn_strawberry = Button(master, text="草莓味", command=self.show_size_choice_strawberry)
self.btn_chocolate = Button(master, text="巧克力味", command=self.show_size_choice_chocolate)
self.btn_banana = Button(master, text="香蕉味", command=self.show_size_choice_banana)
# 将三个口味按钮添加到GUI中
self.btn_strawberry.grid(row=1, column=0)
self.btn_chocolate.grid(row=1, column=1)
self.btn_banana.grid(row=1, column=2)
def show_size_choice_strawberry(self):
# 创建草莓口味选择尺寸窗口
self.toplevel_strawberry = Toplevel(self.master)
# 创建"草莓味多大尺寸"标签
self.label_strawberry = Label(self.toplevel_strawberry, text="草莓味多大尺寸?")
self.label_strawberry.grid(row=0, columnspan=3)
# 创建三个尺寸选择按钮
self.btn_small_strawberry = Button(self.toplevel_strawberry, text="1", command=lambda:self.show_order("草莓味", "1"))
self.btn_medium_strawberry = Button(self.toplevel_strawberry, text="2", command=lambda:self.show_order("草莓味", "2"))
self.btn_large_strawberry = Button(self.toplevel_strawberry, text="3", command=lambda:self.show_order("草莓味", "3"))
# 将三个尺寸选择按钮添加到GUI中
self.btn_small_strawberry.grid(row=1, column=0)
self.btn_medium_strawberry.grid(row=1, column=1)
self.btn_large_strawberry.grid(row=1, column=2)
def show_size_choice_chocolate(self):
# 创建巧克力口味选择尺寸窗口
self.toplevel_chocolate = Toplevel(self.master)
# 创建"巧克力味多大尺寸"标签
self.label_chocolate = Label(self.toplevel_chocolate, text="巧克力味多大尺寸?")
self.label_chocolate.grid(row=0, columnspan=3)
# 创建三个尺寸选择按钮
self.btn_small_chocolate = Button(self.toplevel_chocolate, text="1", command=lambda:self.show_order("巧克力味", "1"))
self.btn_medium_chocolate = Button(self.toplevel_chocolate, text="2", command=lambda:self.show_order("巧克力味", "2"))
self.btn_large_chocolate = Button(self.toplevel_chocolate, text="3", command=lambda:self.show_order("巧克力味", "3"))
# 将三个尺寸选择按钮添加到GUI中
self.btn_small_chocolate.grid(row=1, column=0)
self.btn_medium_chocolate.grid(row=1, column=1)
self.btn_large_chocolate.grid(row=1, column=2)
def show_size_choice_banana(self):
# 创建香蕉口味选择尺寸窗口
self.toplevel_banana = Toplevel(self.master)
# 创建"香蕉味多大尺寸"标签
self.label_banana = Label(self.toplevel_banana, text="香蕉味多大尺寸?")
self.label_banana.grid(row=0, columnspan=3)
# 创建三个尺寸选择按钮
self.btn_small_banana = Button(self.toplevel_banana, text="1", command=lambda:self.show_order("香蕉味", "1"))
self.btn_medium_banana = Button(self.toplevel_banana, text="2", command=lambda:self.show_order("香蕉味", "2"))
self.btn_large_banana = Button(self.toplevel_banana, text="3", command=lambda:self.show_order("香蕉味", "3"))
# 将三个尺寸选择按钮添加到GUI中
self.btn_small_banana.grid(row=1, column=0)
self.btn_medium_banana.grid(row=1, column=1)
self.btn_large_banana.grid(row=1, column=2)
def show_order(self,flavor,size):
# 创建订单窗口
self.toplevel_order=Toplevel(self.master)
# 创建"您选择X的Y味冰淇淋"标签
self.label_order=Label(self.toplevel_order,text="您选择" + size + "的" + flavor + "冰淇淋")
self.label_order.pack()
# 创建"OK"按钮
self.btn_ok=Button(self.toplevel_order,text="OK",command=self.toplevel_order.destroy)
self.btn_ok.pack()
def close_windows(self):
# 隐藏所有弹出窗口
self.toplevel_strawberry.withdraw()
self.toplevel_chocolate.withdraw()
self.toplevel_banana.withdraw()
self.toplevel_order.withdraw()
root = Tk()
my_gui = IceCreamOrder(root)
root.mainloop()
tkinter是Python自带的一个GUI包。优缺点非常明显:
优点:简单、快速、无需安装
缺点:界面复古,缺少对一些复杂功能的支持
(注意,Python2的tkinter名称为Tkinter,我们不讨论它)
问题解答:
要使用tkinter实现一个简易的点单界面,可以考虑使用按钮组件和列表框组件实现。具体步骤如下:
from tkinter import *
root = Tk()
root.geometry("400x400")
root.title("点单界面")
listbox = Listbox(root)
listbox.pack()
def add_coke():
listbox.insert(END, "可乐")
def add_chips():
listbox.insert(END, "薯片")
button1 = Button(root, text="加入可乐", command=add_coke)
button2 = Button(root, text="加入薯片", command=add_chips)
button1.pack()
button2.pack()
root.mainloop()
完整代码示例:
from tkinter import *
# 添加商品到列表框
def add_coke():
listbox.insert(END, "可乐")
def add_chips():
listbox.insert(END, "薯片")
# 创建窗口对象
root = Tk()
root.geometry("400x400")
root.title("点单界面")
# 创建列表框
listbox = Listbox(root)
listbox.pack()
# 创建按钮组件
button1 = Button(root, text="加入可乐", command=add_coke)
button2 = Button(root, text="加入薯片", command=add_chips)
button1.pack()
button2.pack()
# 显示窗口
root.mainloop()
运行结果:
![点单界面示例](https