核心组件只有一个,Canvas,也就是画布,需要依托它来进行窗口的画图
Canvas(window, width = Width, height = Height, bg = 'white', )
琐碎的方法包括pack(), palce(), create_rectangle()等等
同时需要进行窗口的更新(否则贪吃蛇将会变成一条不动的咸鱼蛇)mainloop(), update(), after()
这些后文都会涉及。
准备工作做完,接下来就到了写bug的时间了!
我可以为您提供以下使用Python中tkinter列表框组件实现简易点单界面的全过程教程:
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.title("点单界面")
root.geometry("400x400")
root.resizable(False, False)
frame = ttk.Frame(root, padding=10)
frame.pack(fill='both', expand=True)
# 创建列表框组件
listbox = tk.Listbox(frame, height=10, width=30, selectmode=tk.MULTIPLE)
# 添加选项
listbox.insert(tk.END, "麻辣牛肉面")
listbox.insert(tk.END, "红烧牛肉面")
listbox.insert(tk.END, "原味兰州拉面")
listbox.insert(tk.END, "椒麻鸡丝面")
# 设置列表框风格
style = ttk.Style()
style.theme_use('clam')
style.configure("TListbox", background="white", foreground="black", font=("宋体", 12))
style.configure("TListbox.Item", background="white", foreground="black", font=("宋体", 12))
# 将列表框添加到主窗口
listbox.pack(fill='both', expand=True)
# 创建提交按钮
submit_btn = ttk.Button(frame, text="提交订单")
submit_btn.pack(side=tk.BOTTOM)
def submit():
# 获取选中的选项
selected_items = [listbox.get(idx) for idx in listbox.curselection()]
# 打印选中的选项
print(selected_items)
# 将提交事件绑定到按钮上
submit_btn.configure(command=submit)
root.mainloop()
完整代码如下:
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.title("点单界面")
root.geometry("400x400")
root.resizable(False, False)
frame = ttk.Frame(root, padding=10)
frame.pack(fill='both', expand=True)
listbox = tk.Listbox(frame, height=10, width=30, selectmode=tk.MULTIPLE)
listbox.insert(tk.END, "麻辣牛肉面")
listbox.insert(tk.END, "红烧牛肉面")
listbox.insert(tk.END, "原味兰州拉面")
listbox.insert(tk.END, "椒麻鸡丝面")
style = ttk.Style()
style.theme_use('clam')
style.configure("TListbox", background="white", foreground="black", font=("宋体", 12))
style.configure("TListbox.Item", background="white", foreground="black", font=("宋体", 12))
listbox.pack(fill='both', expand=True)
submit_btn = ttk.Button(frame, text="提交订单")
submit_btn.pack(side=tk.BOTTOM)
def submit():
selected_items = [listbox.get(idx) for idx in listbox.curselection()]
print(selected_items)
submit_btn.configure(command=submit)
root.mainloop()