注册表单页面:
import tkinter as tk from tkinter import ttk def register(): username = username_entry.get() password = password_entry.get() gender = gender_var.get() interests = interests_entry.get() birthday = birthday_entry.get() # 在这里可以将获取到的信息进行处理或保存 print("用户名:", username) print("密码:", password) print("性别:", gender) print("兴趣:", interests) print("生日:", birthday) # 创建主窗口 root = tk.Tk() root.title("注册页面") # 创建用户名输入框和标签 username_label = ttk.Label(root, text="用户名:") username_label.grid(row=0, column=0, padx=10, pady=5, sticky=tk.W) username_entry = ttk.Entry(root) username_entry.grid(row=0, column=1, padx=10, pady=5) # 创建密码输入框和标签 password_label = ttk.Label(root, text="密码:") password_label.grid(row=1, column=0, padx=10, pady=5, sticky=tk.W) password_entry = ttk.Entry(root, show="*") password_entry.grid(row=1, column=1, padx=10, pady=5) # 创建性别单选框和标签 gender_label = ttk.Label(root, text="性别:") gender_label.grid(row=2, column=0, padx=10, pady=5, sticky=tk.W) gender_var = tk.StringVar() gender_combobox = ttk.Combobox(root, textvariable=gender_var, values=["男", "女", "其他"]) gender_combobox.grid(row=2, column=1, padx=10, pady=5) # 创建兴趣输入框和标签 interests_label = ttk.Label(root, text="兴趣:") interests_label.grid(row=3, column=0, padx=10, pady=5, sticky=tk.W) interests_entry = ttk.Entry(root) interests_entry.grid(row=3, column=1, padx=10, pady=5) # 创建生日输入框和标签 birthday_label = ttk.Label(root, text="生日:") birthday_label.grid(row=4, column=0, padx=10, pady=5, sticky=tk.W) birthday_entry = ttk.Entry(root) birthday_entry.grid(row=4, column=1, padx=10, pady=5) # 创建注册按钮 register_button = ttk.Button(root, text="注册", command=register) register_button.grid(row=5, columnspan=2, padx=10, pady=10) # 运行主事件循环 root.mainloop()
写一个计算器:
import tkinter as tk from ttkbootstrap import Style from tkinter import ttk def button_click(number): current = entry.get() entry.delete(0, tk.END) entry.insert(0, current + str(number)) def button_clear(): entry.delete(0, tk.END) def button_equal(): result = eval(entry.get()) entry.delete(0, tk.END) entry.insert(0, str(result)) # 创建主窗口 root = tk.Tk() root.title("简单计算器") # 创建样式对象 style = Style(theme='flatly') # 创建输入框 entry = ttk.Entry(root, font=('Arial', 20), justify='right') entry.pack(fill='x', padx=10, pady=10) # 创建按钮 buttons = [ '7', '8', '9', '/', '4', '5', '6', '*', '1', '2', '3', '-', 'C', '0', '=', '+' ] row = 1 col = 0 for button in buttons: button_frame = ttk.Frame(root) button_frame.pack(side='left') if button == 'C': ttk.Button(button_frame, text=button, command=button_clear, style='danger.TButton').pack(fill='both', expand=True) elif button == '=': ttk.Button(button_frame, text=button, command=button_equal, style='success.TButton').pack(fill='both', expand=True) else: ttk.Button(button_frame, text=button, command=lambda b=button: button_click(b), style='primary.TButton').pack(fill='both', expand=True) # 运行主事件循环 root.mainloop()
ttkbootstrap
提供了一些常用的布局组件和布局管理器
ttkbootstrap
提供了一些常用的布局组件和布局管理器,可以帮助你设计现代化的 Tkinter 界面。以下是ttkbootstrap
中常用的布局组件和布局管理器:
- ttk.Frame:用于创建一个框架,可以包含其他组件,并通过布局管理器来管理这些组件的位置和大小。
- ttk.PanedWindow:用于创建一个可分割的窗口,可以将窗口分成多个部分,并允许用户调整分割位置。
- ttk.Notebook:用于创建标签页式的界面,每个标签页可以包含不同的内容,适合用于多个页面切换的场景。
- ttk.LabelFrame:用于创建带有标题的框架,可以将相关组件放置在一起,并使用标题进行分组。
- ttk.Treeview:用于创建树状结构的界面,可以显示层级关系的数据,例如文件系统或树状菜单。
- ttk.Separator:用于创建分隔线,可以在界面中添加水平或垂直的分隔线,用于视觉上的分隔。
- ttk.Progressbar:用于显示进度条,可以展示任务的完成进度或其他进度相关信息。
- ttk.Scale:用于创建一个滑动条,可以让用户调整一个范围内的值。
- ttk.Scrollbar:用于创建滚动条,可以让用户在大量内容的情况下进行滚动查看。
- ttk.Button:用于创建按钮,可以响应用户的点击事件。
- ttk.Entry:用于创建单行文本输入框,允许用户输入文本信息。
- ttk.Checkbutton:用于创建复选框,可以让用户选择一个或多个选项。
- ttk.Radiobutton:用于创建单选按钮,可以让用户从多个选项中选择一个。
- ttk.Label:用于创建标签,用于显示静态文本或图标等信息。
除了上述的组件和布局管理器外,
ttkbootstrap
还提供了一些样式和主题管理器,可以帮助你设计出符合现代化风格的界面。利用这些组件和布局管理器,你可以灵活地设计各种复杂的界面布局,满足不同的需求。