python tkinter 入门教程
python tkinter 入门教程
tkinter是python内置的一个制作窗口的模块
用它可以制作用户界面
一、tkinter制作一个窗口
输入一下代码
import tkinter win = tkinter.Tk() # 创建窗口 win.mainloop() # 运行窗口
就可以看到一个最基础的窗口了
接下来可以给窗口进行设置
import tkinter win = tkinter.Tk() win.title('window') # 设置标题 win.geometry('300x200') # 设置窗口大小 win.mainloop()
二、在窗口上放置用户组件
tkinter的用户组件有 Label, Button, Entry等
举例:
import tkinter win = tkinter.Tk() win.title('window') win.geometry('300x200') lbl = tkinter.Label(win, text='hello', font=(None, 80)) # 创建组件 lbl.pack() # 将组件放置在窗口上 win.mainloop()
其中,放置组件有三种方法
pack()
grid(row = i,column = j)
place(x = i,y = i)
再举个例子:
import tkinter win = tkinter.Tk() win.title('window') win.geometry('300x200') btn = tkinter.Button(win, text='hello', font=(None, 24), height=1) # 设置高度 btn.pack() ent = tkinter.Entry(win, font=(None, 24), width=10) # 设置宽度 ent.pack() win.mainloop()
三、组件的事件
button组件有参数command
比如说:
import tkinter def hello(): print("hello") win = tkinter.Tk() win.title('window') win.geometry('300x200') btn = tkinter.Button(win, text='hello', font=(None, 24), command=hello) btn.pack() win.mainloop()
如果函数有参数,可以用匿名函数lambda
import tkinter def hello(name): print("hello:", name) win = tkinter.Tk() win.title('window') win.geometry('300x200') btn = tkinter.Button(win, text='hello', font=(None, 24), command=lambda: hello('tkinter')) btn.pack() win.mainloop()
而Entry组件有函数:get()
它可以返回Entry内的值
import tkinter def hello(name): print("hello:", name) win = tkinter.Tk() win.title('window') win.geometry('300x200') ent = tkinter.Entry(win, font=(None, 24)) ent.pack() btn = tkinter.Button(win, text='hello', font=(None, 24), command=lambda: hello(ent.get())) btn.pack() win.mainloop()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App