您现在的位置是:网站首页> 编程资料编程资料
python Tkinter模块使用方法详解_python_
2023-05-26
496人已围观
简介 python Tkinter模块使用方法详解_python_
一、前言
1.1、Tkinter是什么
Tkinter 是使用 python 进行窗口视窗设计的模块。Tkinter模块(“Tk 接口”)是Python的标准Tk GUI工具包的接口。作为 python 特定的GUI界面,是一个图像的窗口,tkinter是python自带的,可以编辑的GUI界面,用来入门,熟悉窗口视窗的使用,非常有必要。
二、准备工作
2.1、Windows演示环境搭建
- 安装python3.7
- 安装编辑器,演示使用的Visual Studio Code
三、Tkinter创建窗口
3.1、创建出一个窗口
首先我们导入tkinter的库
import tkinter as tk # 在代码里面导入库,起一个别名,以后代码里面就用这个别名 root = tk.Tk() # 这个库里面有Tk()这个方法,这个方法的作用就是创建一个窗口
如果只是执行以上的两句代码,运行程序是没有反应的,因为只有一个主函数,从上到下执行完就没有了,这个窗口也是很快就消失了,所以现在我们要做的就是让窗口一直显示,那么我们就可以加一个循环
创建的窗口的名字是root ,那么我们之后使用这个root就可以操作这个窗口了。
root.mainloop() # 加上这一句,就可以看见窗口了
执行以上的3句代码,我们就可以看见窗口了

3.2、给窗口取一个标题
root.title('演示窗口') 
3.3、窗口设置
通过以下代码,我们可以给窗口设置长宽以及窗口在屏幕的位置
root.geometry("300x100+630+80") # 长x宽+x*y 
3.3、创建按钮,并且给按钮添加点击事件
这个库里面有一个方法Button(),只要调用这个方法,我们就可以创建这个组件,创建的这个组件我们赋值给一个常量,以后我们就可以用这个常量来操作这个按钮,这个方法里面的参数,就是要我们写窗口的名字
Button(root) 这样写的意思就是 将我们创建的按钮放到这个窗口上面
btn1 = tk.Button(root)
给按钮取一个名称
btn1["text"] = "点击"
我们创建的按钮组件,已经放到窗口里面了,但是放到窗口的哪个位置,东南西北哪个地方,我们就可以用pack()去定位(后面会介绍其它定位方法)
btn1.pack() # 按钮在窗口里面的定位
创建点击按钮事件的弹窗,先导入messagebox,这个必须单独导入
from tkinter import messagebox def test(e): messagebox.showinfo("窗口名称","点击成功") 现在有了按钮,有了方法,我想要做的是一点击按钮,就执行这个方法,那么就需要将按钮和方法进行绑定
btn1.bind("",test) #第一个参数为:按鼠标左键的事件 第二个参数为:要执行的方法的名字 按钮组件里面有一个方法bind() 这个方法就可以实现绑定
完整代码
import tkinter as tk from tkinter import messagebox root = tk.Tk() # 创建窗口 root.title('演示窗口') root.geometry("300x100+630+80") # 长x宽+x*y btn1 = tk.Button(root) # 创建按钮,并且将按钮放到窗口里面 btn1["text"] = "点击" # 给按钮一个名称 btn1.pack() # 按钮布局 def test(e): '''创建弹窗''' messagebox.showinfo("窗口名称", "点击成功") btn1.bind("", test) # 将按钮和方法进行绑定,也就是创建了一个事件 root.mainloop() # 让窗口一直显示,循环 
3.4、窗口内的组件布局
3种布局管理器:pack - grid - place
pack
这个布局管理器,要么将组件垂直的排列,要么水平的排列
grid
Grid(网格)布局管理器会将控件放置到一个二维的表格里。
主控件被分割成一系列的行和列,表格中的每个单元(cell)都可以放置一个控件。
| 选项 | 说明 |
|---|---|
| column | 单元格的列号,从0开始的正整数 |
| columnspan | 跨列,跨越的列数,正整数 |
| row | 单元格的行号, 从0开始的正整数 |
| rowspan | 跨行,跨越的行数,正整数 |
| ipadx, ipady | 设置子组件之间的间隔,x方向或y方向,默认单位为像素,非浮点数,默认0.0 |
| padx, pady | 与之并列的组件之间的间隔,x方向或y方向,默认单位为像素,非浮点数,默认0.0 |
| sticky | 组件紧贴所在的单元格的某一脚,对应于东南西北中以及4个角。东 = “e”,南=“s”,西=“w”,北=“n”,“ne”,“se”,“sw”, “nw”; |
grid_info() 查看组件默认的参数
import tkinter as tk root = tk.Tk() # 默认按钮 btn1 = tk.Button(root) btn1["text"] = "按钮1" btn1.grid() print(btn1.grid_info()) root.title('演示窗口') root.geometry("300x150+1000+300") root.mainloop() 
column 指定控件所在的列
import tkinter as tk root = tk.Tk() # 按钮1 btn1 = tk.Button(root) btn1["text"] = "按钮1" btn1.grid(column=0) # 按钮2 btn2 = tk.Button(root) btn2["text"] = "按钮2" btn2.grid(column=1) root.title('演示窗口') root.geometry("300x100+1000+300") root.mainloop() 
- columnspan 指定每个控件横跨的列数
- 什么是columnspan?
类似excel的合并单元格

a占了两个格子的宽度,colunmspan就是2
```python import tkinter as tk root = tk.Tk() # 按钮1 btn1 = tk.Button(root) btn1["text"] = "按钮1" btn1.grid(column=0, columnspan=2) # 按钮2 btn2 = tk.Button(root) btn2["text"] = "按钮2" btn2.grid(column=1, columnspan=1) root.title('演示窗口') root.geometry("300x100+1000+300") root.mainloop() 
row 指定控件所在的行
import tkinter as tk root = tk.Tk() # 按钮1 btn1 = tk.Button(root) btn1["text"] = "按钮1" btn1.grid(row=0) # 按钮2 btn2 = tk.Button(root) btn2["text"] = "按钮2" btn2.grid(row=1) # 按钮3 btn3 = tk.Button(root) btn3["text"] = "按钮2" btn3.grid(row=2) root.title('演示窗口') root.geometry("300x100+1000+300") root.mainloop()
- rowspan 指定每个控件横跨的行数
- 什么是rowspan ?
类似excel的合并单元格

a占了两个格子的高度,rowspan就是2
import tkinter as tk root = tk.Tk() # 按钮1 btn1 = tk.Button(root) btn1["text"] = "按钮1" btn1.grid(row=0, rowspan=2) # 按钮2 btn2 = tk.Button(root) btn2["text"] = "按钮2" btn2.grid(row=2, rowspan=1) root.title('演示窗口') root.geometry("300x100+1000+300") root.mainloop() 
ipadx 水平方向内边距
import tkinter as tk root = tk.Tk() # 按钮1 btn1 = tk.Button(root) btn1["text"] = "按钮1" btn1.grid(ipadx=20) # 按钮2 btn2 = tk.Button(root) btn2["text"] = "按钮2" btn2.grid(ipadx=5) root.title('演示窗口') root.geometry("300x100+1000+300") root.mainloop() 
ipady 垂直方向内边距
import tkinter as tk root = tk.Tk() # 按钮1 btn1 = tk.Button(root) btn1["text"] = "按钮1" btn1.grid(ipady=20) # 按钮2 btn2 = tk.Button(root) btn2["text"] = "按钮2" btn2.grid(ipady=5) root.title('演示窗口') root.geometry("300x150+1000+300") root.mainloop() 
padx 水平方向外边距
import tkinter as tk root = tk.Tk() # 按钮1 btn1 = tk.Button(root) btn1["text"] = "按钮1" btn1.grid(padx=50) # 按钮2 btn2 = tk.Button(root) btn2["text"] = "按钮2" btn2.grid(column=1, padx=20) root.title('演示窗口') root.geometry("300x150+1000+300") root.mainloop()
pady 垂直方向外边距
本站声明:
1、本站所有资源均来源于互联网,不保证100%完整、不提供任何技术支持;
2、本站所发布的文章以及附件仅限用于学习和研究目的;不得将用于商业或者非法用途;否则由此产生的法律后果,本站概不负责!
相关内容
- 一行Python命令实现批量加水印_python_
- Python中Matplotlib的点、线形状、颜色以及绘制散点图_python_
- python使用selenium模拟浏览器进入好友QQ空间留言功能_python_
- Scrapy爬虫框架集成selenium及全面详细讲解_python_
- 详解Python调用华为API实现图像标签_python_
- 教你十行代码实现python向手机推送通知功能_python_
- pyppeteer执行js绕过webdriver监测方法上_python_
- pyppeteer执行js绕过webdriver监测方法下_python_
- Python读写JSON文件的操作详解_python_
- python操作RabbitMq的三种工作模式_python_
点击排行
本栏推荐
