我们使用一个模块,我们要熟悉这个模块的主要元件。如我们设计一个窗口,我们可以用Tk()来完成创建;一些交互元素,按钮、标签、编辑框用到控件;怎么去布局你的界面,我们可以用到pack()、grid()、place()等方式;我们怎么响应事件,mainloop() 启动消息循环,监听用户操作。
我们来看这个界面
import tkinter as tk
from tkinter import ttk
# 创建主窗口
root = tk.Tk()
root.title("今天头条你好")
root.geometry("400x300") # 初始窗口大小
# 添加控件
label = ttk.Label(root, text=" I am Tkinter!")
button = ttk.Button(root, text="这里点击我")
# 布局控件
label.pack(pady=20)
button.pack()
# 启动事件循环
root.mainloop()
运行看下,下图
我们熟悉下它的主要控件
- 标签 Label 显示静态文本或图像
- 按钮 Button 触发点击事件
- 输入框 Entry 单行文本输入
- 多行文本框 Text 支持富文本编辑
- 复选框 Checkbutton 多选项选择
- 单选框 Radiobutton 互斥选项选择
- 下拉列表 Combobox 从预定义列表中选择
- 进度条 Progressbar 显示任务进度
- 滚动条 Scrollbar 配合其他控件实现滚
如输入文本entry
# Entry 输入内容绑定变量
entry_var = tk.StringVar()
entry = ttk.Entry(root, textvariable=entry_var)
# 实时监听输入变化
entry_var.trace_add("write", lambda *args: print(entry_var.get()))
我们再来看看pack()
如何让界面变化,自己练习的时候,你自己可以调整
button.pack(
side="left", # 方向 (left/right/top/bottom)
fill="both", # 填充空间 (x/y/both)
expand=True, # 是否扩展剩余空间
padx=5, pady=5 # 外边距
)
place绝对位置,你想确定只放某个位置
button.place(x=100, y=50, anchor="center") # anchor 指定锚点
- 怎么响应事件,我么可以绑定事件,如下
# 方法1:通过 command 参数绑定
button = ttk.Button(root, text="按钮", command=on_click)
# 方法2:使用 bind() 绑定事件类型
entry.bind("<Return>", lambda e: print("回车键按下"))
# 方法3:协议事件(如窗口关闭)
root.protocol("WM_DELETE_WINDOW", on_close)
其他一些绑定的方法
- Button-1 鼠标左键点击
- Double-Button-1 鼠标左键双击
- KeyPress-A 按下 A 键
- Configure 窗口大小改变
- FocusIn 控件获得焦点
等等。调调改改,很快就熟悉了,当然你只看 那样成长是比较慢的。