

























Python 与控件之间的双向数据绑定
| 类 | 存储类型 | 默认值 |
|---|---|---|
StringVar |
str |
"" |
IntVar |
int |
0 |
DoubleVar |
float |
0.0 |
BooleanVar |
bool |
False |
variable_binding.py
slider_val = tk.DoubleVar()
# Scale 控件写入 slider_val
ttk.Scale(root, variable=slider_val, from_=0, to=100).pack(fill="x", padx=20)
# 标签自动显示当前值
ttk.Label(root, textvariable=slider_val).pack()
# 输入框也绑定——输入数值会移动滑块
ttk.Entry(root, textvariable=slider_val).pack(pady=4)
trace_add() —— 监视变化var.trace_add(mode, callback) → trace_id
mode 为 "read"、"write" 或 "unset" 之一。回调函数接收 (name, index, mode) 三个参数。
live_search.py
ITEMS = ["apple", "apricot", "banana", "blueberry", "cherry"]
query = tk.StringVar()
ttk.Entry(root, textvariable=query).pack(pady=8)
listbox = tk.Listbox(root, height=6)
listbox.pack(pady=4)
def filter_items(*_):
q = query.get().lower()
listbox.delete(0, tk.END)
for item in ITEMS:
if q in item:
listbox.insert(tk.END, item)
query.trace_add("write", filter_items)
filter_items()
| 控件 | 选项 | 变量类型 |
|---|---|---|
Entry、Label、Button |
textvariable= |
StringVar |
Checkbutton |
variable= |
BooleanVar 或 IntVar |
Radiobutton |
variable= |
StringVar 或 IntVar |
Scale |
variable= |
IntVar 或 DoubleVar |
Spinbox / Combobox |
textvariable= |
StringVar |
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。