news 2026/8/29 6:04:50

Python自带的窗体开发技术:Tkinter 从入门到精通

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python自带的窗体开发技术:Tkinter 从入门到精通

Tkinter 简介

Tkinter 是 Python 的标准 GUI 库,基于 Tk GUI 工具包,提供跨平台的窗体开发能力。其优势在于轻量、易学,适合快速开发小型应用或原型。


基础窗口创建

import tkinter as tk # 创建主窗口 root = tk.Tk() root.title("示例窗口") root.geometry("300x200") # 设置窗口大小 # 运行主循环 root.mainloop()
  • Tk()初始化主窗口,mainloop()启动事件循环。
  • geometry("宽x高")设置窗口尺寸,单位是像素。

常用控件

标签(Label)
label = tk.Label(root, text="Hello Tkinter!") label.pack() # 自动布局
  • text属性设置显示文本,pack()将控件添加到窗口。
按钮(Button)
def on_click(): print("按钮被点击") button = tk.Button(root, text="点击", command=on_click) button.pack()
  • command绑定点击事件的处理函数。
输入框(Entry)
entry = tk.Entry(root) entry.pack()
  • 使用entry.get()获取输入内容。

布局管理

pack() 方法

按垂直或水平方向自动排列控件。

label1.pack(side="left") # 靠左 label2.pack(side="top") # 靠上

https://www.zhihu.com/zvideo/1994546290940470360/
https://www.zhihu.com/zvideo/1994546291057907535/
https://www.zhihu.com/zvideo/1994546289782833961/
https://www.zhihu.com/zvideo/1994546288683939246/
https://www.zhihu.com/zvideo/1994546287375307949/
https://www.zhihu.com/zvideo/1994546285974423177/
https://www.zhihu.com/zvideo/1994546285961815984/
https://www.zhihu.com/zvideo/1994546283894043395/
https://www.zhihu.com/zvideo/1994546282300200142/
https://www.zhihu.com/zvideo/1994546282048529025/
https://www.zhihu.com/zvideo/1994546281532630379/
https://www.zhihu.com/zvideo/1994546281109020759/
https://www.zhihu.com/zvideo/1994546279955583155/
https://www.zhihu.com/zvideo/1994546280349849069/
https://www.zhihu.com/zvideo/1994546280328878051/
https://www.zhihu.com/zvideo/1994546279716512594/
https://www.zhihu.com/zvideo/1994546279158681971/
https://www.zhihu.com/zvideo/1994546275316692342/
https://www.zhihu.com/zvideo/1994546275203432539/
https://www.zhihu.com/zvideo/1994546272384880849/
https://www.zhihu.com/zvideo/1994546270346442575/
https://www.zhihu.com/zvideo/1994546268832301841/
https://www.zhihu.com/zvideo/1994546269721474440/
https://www.zhihu.com/zvideo/1994546268828087302/
https://www.zhihu.com/zvideo/1994546267825644607/
https://www.zhihu.com/zvideo/1994546268190560614/
https://www.zhihu.com/zvideo/1994546265397163228/
https://www.zhihu.com/zvideo/1994546264621203989/
https://www.zhihu.com/zvideo/1994546262888960755/
https://www.zhihu.com/zvideo/1994546261966214683/
https://www.zhihu.com/zvideo/1994546259453838357/
https://www.zhihu.com/zvideo/1994546259315414706/
https://www.zhihu.com/zvideo/1994546258803700421/
https://www.zhihu.com/zvideo/1994546257981621460/
https://www.zhihu.com/zvideo/1994546257406996606/
https://www.zhihu.com/zvideo/1994546257004364716/
https://www.zhihu.com/zvideo/1994546256991760668/
https://www.zhihu.com/zvideo/1994546254923986049/
https://www.zhihu.com/zvideo/1994546254127063041/
https://www.zhihu.com/zvideo/1994546254110283192/
https://www.zhihu.com/zvideo/1994546251597894245/
https://www.zhihu.com/zvideo/1994546252218655830/
https://www.zhihu.com/zvideo/1994546250796778660/
https://www.zhihu.com/zvideo/1994546250738070087/
https://www.zhihu.com/zvideo/1994546250134069484/
https://www.zhihu.com/zvideo/1994546250327024294/
https://www.zhihu.com/zvideo/1994546249622376868/
https://www.zhihu.com/zvideo/1994546247982409281/
https://www.zhihu.com/zvideo/1994546247248409449/
https://www.zhihu.com/zvideo/1994546245042201245/

grid() 方法

网格布局,适合复杂界面。

label.grid(row=0, column=0) # 第0行第0列 button.grid(row=1, column=1)
place() 方法

绝对定位,通过坐标控制位置。

label.place(x=50, y=100) # 坐标(50, 100)

事件绑定

def on_key(event): print(f"按下按键: {event.char}") root.bind("<Key>", on_key) # 绑定键盘事件
  • 常见事件:<Button-1>(鼠标左键)、<Return>(回车键)。

高级功能

弹窗(MessageBox)
from tkinter import messagebox messagebox.showinfo("提示", "操作成功")
  • 支持showwarningshowerror等类型。
菜单栏(Menu)
menubar = tk.Menu(root) file_menu = tk.Menu(menubar, tearoff=0) file_menu.add_command(label="打开") menubar.add_cascade(label="文件", menu=file_menu) root.config(menu=menubar)
画布(Canvas)
canvas = tk.Canvas(root, width=200, height=100) canvas.create_line(0, 0, 200, 100) # 绘制直线 canvas.pack()

实战示例:简易计算器

def calculate(): try: result = eval(entry.get()) output.config(text=f"结果: {result}") except: output.config(text="输入错误") entry = tk.Entry(root) entry.pack() button = tk.Button(root, text="计算", command=calculate) button.pack() output = tk.Label(root, text="结果将显示在这里") output.pack()

学习资源推荐

  1. 官方文档:https://docs.python.org/3/library/tkinter.html
  2. 书籍:《Python GUI编程 with Tkinter》
  3. 社区:Stack Overflow 的 Tkinter 标签。

通过实践逐步掌握控件、布局和事件处理,可快速构建功能完整的桌面应用。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/29 3:37:54

布朗大学揭示医疗角色扮演的双刃剑效应

这项由布朗大学领导、联合图宾根大学共同完成的研究发表于2026年1月的arXiv预印本平台&#xff08;论文编号&#xff1a;arXiv:2601.05376v1&#xff09;&#xff0c;为我们揭开了一个令人意外的发现&#xff1a;当我们给AI医生戴上不同的"人格面具"时&#xff0c;它…

作者头像 李华
网站建设 2026/8/28 20:55:55

亲测好用8个一键生成论文工具,MBA论文写作必备!

亲测好用8个一键生成论文工具&#xff0c;MBA论文写作必备&#xff01; AI 工具如何成为论文写作的得力助手 在当今快节奏的学术环境中&#xff0c;MBA 学生和研究者常常面临时间紧、任务重的压力。尤其是在撰写论文时&#xff0c;从选题到成稿&#xff0c;每一个环节都需要大量…

作者头像 李华
网站建设 2026/8/29 4:32:58

业务即代码:当DDD穿越古代商帮-第2集:第一次事件风暴

笔言: 在《1999点科技树》第九、十合集&#xff08;看见与守护&#xff1a;分布式系统的观测体系与安全架构&#xff09;中&#xff0c;我曾提及一个写作计划——将 DDD&#xff08;领域驱动设计&#xff09; 与 BIZBOK&#xff08;业务知识体系&#xff09; 深度融合&#xff…

作者头像 李华
网站建设 2026/8/28 23:17:58

PySide step by step系列

根据学习进度更新。 PySide基础 PySide系列-01-入门简介 PySide系列-02-信号与槽机制 PySide系列-03-QPushButton、QMessageBox

作者头像 李华
网站建设 2026/8/29 5:07:33

机器人系统ros2期末速通4

一、16. 调试工具链&#xff08;CLI rqt RViz2&#xff09;1. 核心概念&#xff08;系统里的实际样子&#xff09;CLI&#xff08;命令行工具&#xff09;&#xff1a;你在终端敲的 ROS 指令&#xff0c;是调试的 “基础武器”&#xff0c;比如查话题、查节点、查 TF 都靠它。…

作者头像 李华