

























响应用户交互和系统事件
bind() 基础widget.bind(sequence, callback, add=None) → funcid
bind_basics.py
label.bind("<Button-1>", lambda e: print(f"点击位置:{e.x},{e.y}"))
root.bind("<Control-s>", lambda e: save())
root.bind("<Escape>", lambda e: root.destroy())
| 属性 | 类型 | 说明 |
|---|---|---|
widget |
Widget | 接收事件的控件 |
x, y |
int | 鼠标相对于控件的位置 |
x_root, y_root |
int | 鼠标相对于屏幕的位置 |
num |
int | 鼠标按钮编号(1、2、3) |
keysym |
str | 键名(例如 "Return"、"a"、"F5") |
char |
str | 输入的字符(可能为空) |
state |
int | 修饰键位掩码(Shift、Ctrl、Alt) |
delta |
int | 滚动量(鼠标滚轮事件) |
width, height |
int | 新尺寸(配置事件) |
| 序列 | 触发时机 |
|---|---|
<Button-1> |
鼠标左键按下 |
<Button-3> |
鼠标右键按下 |
<ButtonRelease-1> |
鼠标左键释放 |
<Double-Button-1> |
鼠标左键双击 |
<B1-Motion> |
按住左键时移动鼠标 |
<Motion> |
鼠标移动(任意按键或无按键) |
<Enter> / <Leave> |
鼠标光标进入/离开控件 |
<MouseWheel> |
鼠标滚轮滚动(event.delta) |
| 序列 | 说明 |
|---|---|
<Key> |
任意按键按下 |
<Return> |
回车键 |
<Escape> |
ESC 键 |
<Tab> / <BackSpace> / <Delete> |
Tab / 退格 / Delete |
<Up> <Down> <Left> <Right> |
方向键 |
<F1> … <F12> |
功能键 |
<Control-s> |
Ctrl+S |
<Control-Shift-Z> |
Ctrl+Shift+Z |
| 虚拟事件 | 触发时机 |
|---|---|
<<Cut>> <<Copy>> <<Paste>> |
剪贴板操作 |
<<ComboboxSelected>> |
ttk.Combobox 选择变更 |
<<NotebookTabChanged>> |
ttk.Notebook 标签页切换 |
<<TreeviewSelect>> |
ttk.Treeview 行被选中 |
<<ListboxSelect>> |
Listbox 选择变更 |
after() —— 定时器widget.after(ms, func=None, *args) → after_id
countdown.py
count = tk.IntVar(value=10)
label = ttk.Label(root, textvariable=count, font=("TkDefaultFont", 48))
label.pack(padx=40, pady=20)
def tick():
n = count.get()
if n > 0:
count.set(n - 1)
root.after(1000, tick)
else:
label.config(text="完成!")
root.after(1000, tick)
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。