🐸 青蛙编程网
首页 / Python / 桌面客户端 / 3. 常用控件:按钮、输入框、标签

3. 常用控件:按钮、输入框、标签

这是什么:控件(Widget,小部件)是组成界面的零件——按钮、输入框、标签、勾选框、下拉框……Tkinter 自带十几个,本章学会最常用的六个。

为什么用:上一章的窗口只会说"你好",本章结束它就能听你说话、按你指挥干活。所有桌面软件——记事本、计算器、待办清单——拆开看都是这几个控件的排列组合。

如何用:先逐个认识六个控件的创建方式,再用一个「按钮改标签」的小例子把"读取输入 → 处理 → 更新显示"串起来。

六个高频控件一览

控件 写法 长什么样 用来干嘛
Label 标签 tk.Label(root, text="文字") 一行只读文字/图片 显示信息、说明
Button 按钮 tk.Button(root, text="点我") 可点击的方块 触发一个动作
Entry 输入框 tk.Entry(root) 单行白框 收一行文字
Text 文本框 tk.Text(root, height=5) 多行编辑区 收多行文字
Checkbutton 勾选框 tk.Checkbutton(root, text="同意") ☑ 选项 开/关某个功能
Radiobutton 单选钮 tk.Radiobutton(root, text="男") ◉ 选项 一组里只能选一个

创建方式和 Label 一样:第一个参数写它属于哪个窗口/容器,然后必须 pack() 上架才看得见。

按钮 + 输入框 + 标签:最小可用交互

import tkinter as tk

def greet():
    name = entry.get()
    label.config(text=f"你好,{name}!")

root = tk.Tk()
root.title("打招呼机")
root.geometry("300x160")

label = tk.Label(root, text="等你打招呼")
label.pack(pady=10)

entry = tk.Entry(root, width=20)
entry.pack(pady=5)

button = tk.Button(root, text="打招呼", command=greet)
button.pack(pady=5)

root.mainloop()

你会看到:窗口里从上到下三件套——提示标签、输入框、按钮。在框里输入 青蛙 点按钮,标签立刻变成"你好,青蛙!";什么都不输就点,标签变成"你好,!"(第 5 章教怎么处理这种空输入)。

代码 作用
entry.get() 读取输入框当前文字(永远是字符串,数字要自己 int() 转)
label.config(text=...) 更新已有控件的属性,界面立即刷新
command=greet 把函数本身交给按钮(注意没有括号!写 greet() 等于创建按钮时就跑了一遍)
pack(pady=10) 上架并留 10 像素上下间距

command 不带括号是 GUI 新手第一道坎:按钮要的是"将来要点的事",不是"现在就办的事"。传函数名、不传调用,这个习惯从这一章用到第 8 章。

读取和清空的其他常用动作

entry.insert(0, "默认值")   # 在位置 0 填入文字(打开预填)
entry.delete(0, "end")      # 从开头清到结尾
text.get("1.0", "end")      # Text 是多行的,行号.列号表示位置,"1.0" 即第 1 行第 0 列

记忆口诀:get 读、insert 写、delete 清、config 改;command 传函数别加括号。

动手改

  1. 在 greet 里加一行 entry.delete(0, "end")——每次打完招呼输入框自动清空
  2. 把 label.config 换成改一个计数器:每点一次按钮,标签显示"你点了 N 次"(提示:在函数外用变量存次数,函数里用 global 或本章先用简单方法改)
  3. 加一个 Checkbutton 和 Radiobutton 组,先只求"摆出来能点",勾选状态怎么读是第 5 章的事

下一章:布局管理:pack / grid / place 🐸

📥 下载本章代码

ZIP 内含本章全部代码文件与说明,解压即用,与教程内容同步生成。