tkinter库详解

article/2025/9/24 16:13:47

①导入标准库(tkinter为python标准库无需安装
from tkinter import *

②窗口的创建和设置

窗口的创建和设置方法注释
root=Tk()生成主窗口
root.geometry(‘250x250’)改变窗体大小(‘宽x高’),注意是x不是*
root.geometry(‘+450+450’)改变窗体位置(‘+横坐标+纵坐标’)
root.title(‘标题名’)修改框体的名字
root.mainloop()显示主窗口
root.resizable(0, 0)将窗口大小设置为不可变
root.resizable(False, False)将窗口大小设置为不可变
from tkinter import *root=Tk()
root.geometry('300x300')
root.title('hello')
root.geometry('+400+300')
root.mainloop()

在这里插入图片描述

————————————————————————————————————————————
③ 三种组件位置设置方法(实例包含在下面的组件例子中
-pack()

参数参数值注释
side组件位于容器的方位
LEFT
TOP(默认)
RIGTH
BOTTOM
fill
X水平方向填充
Y竖直方向填充
BOTH水平和竖直方向填充
NONE不填充
expand
YES扩展整个空白区
NO不扩展
anchor
N
E
S
W
CENTER中间
SE右下
NE右上
SW左下
NW左上

关于pack的组件布局原理不清晰的,可浏览下面这篇博客
pack的组件布局原理

-grid() 网格化设置

参数注释
row组件的行宽
rowspan跨越的行数
column组件的列宽
columnspan跨越的列数
sticky对齐方式(参数值S,W,N,E)

-place()

参数注释
anchor组件对齐方式(参数值:S,W,E,N,SE,SW,NW,NE,CENTER,默认为CENTER)
x组件左上角的x坐标
y组件左上角的y坐标
relx组件相对于窗口的x坐标,应为0-1之间的小数
rely组件相对于窗口的y坐标,应为0-1之间的小数
width组件的宽度
height组件的高度
relwidth组件相对于窗口的宽度,应为0-1之间的小数
relheight组件相对于窗口的高度,应为0-1之间的小数

④核心组件

tkinter核心组件中文释义介绍
Label标签用来显示文字或图片
Button按钮类似标签,但提供额外的功能,例如鼠标掠过、按下、释放以及键盘操作、事件
Entry单行文字域用来收集键盘输入
Text多行文字区域可用来收集(或显示)用户输入的文字
Frame框架包含其他组件的纯容器
Checkbutton选择按钮一组方框,可以选择其中的任意个
Listbox列表框一个选项列表,用户可以从中选择
Menu菜单点下菜单按钮后弹出的一个选项列表,用户可以从中选择
Menubutton菜单按钮用来包含菜单的组件(有下拉式、层叠式等等)
Message消息框类似于标签,但可以显示多行文本
Radiobutton单选按钮一组按钮,其中只有一个可被“按下” (类似 HTML 中的 radio)
Scale进度条线性“滑块”组件,可设定起始值和结束值,会显示当前位置的精确值
Scrollbar滚动条对其支持的组件(文本域、画布、列表框、文本框)提供滚动功能
Toplevel顶级类似框架,但提供一个独立的窗口容器
Canvas画布提供绘图功能(直线、椭圆、多边形、矩形) ,可以包含图形或位图

⑤核心组件详细介绍
Button (根对象,[属性列表])

参数注释
text按钮文本内容
font字体(样式,大小)
bg (background)背景颜色(按钮颜色)
fg (foreground)前景颜色(字体颜色)
width按钮宽度
height按钮高度
command按钮关联的函数,当按钮被点击时,执行该函数
padx设置按钮文本与按钮边框x轴方向的距离
pady设置按钮文本与按钮边框y轴方向的距离
bd(borderwidth)按钮边框宽度
anchor控制按钮文本的位置(参数值:S,W,E,N,SE,SW,NW,NE,CENTER,默认为CENTER)
image与PhotoImage 一起使用,图片只能为gif格式
relief三维效果 (参数值:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT)
bitmap位图
compound图片和文字一同显示
cursor鼠标移动到框架时,光标的形状(参数值:arrow, circle, cross, plus 等)
justify显示多行文本的时候,设置不同行之间的对齐方式(参数值:LEFT, RIGHT, CENTER)
state设置按钮状态,参数值:NORMAL、ACTIVE、 DISABLED。默认 NORMAL
wraplength指定每行文本的宽度,单位是屏幕单元
underline下划线。默认按钮上的文本都不带下划线。取值就是带下划线的字符串索引,为 0 时,第一个字符带下划线,为 1 时,第二个字符带下划线,以此类推
from tkinter import *
root = Tk()
root.geometry('750x400')
button1=Button(text='测试测试测试',bg='blue',fg='yellow',bd=2,anchor=SW,activebackground='pink',activeforeground='white',height=2,width=8,underline=0,font=('华文行楷',20),padx=20,pady=30,state=ACTIVE,wraplength=120,justify=RIGHT,cursor='cross')
button1.grid(row=4,column=7)button2=Button(root,text='测试2',bg='purple',font=('华文行楷',20),fg='blue',width=8,height=5,anchor=E,padx=20)
button2.grid(row=4,column=1)picture=PhotoImage(file="E:\\1.gif")#必须是真正的gif图片!,单纯改变图片的格式改不了图片的本质,无法运行
button3=Button(root,text='图片',image=picture,compound='left')
button3.grid(row=2,column=5)button4=Button(root,bitmap='question',bd=2)
button4.grid(row=1,column=5)button5=Button(root,relief=SUNKEN,text='测试5')
button5.grid(row=1,column=4)root.mainloop()

在这里插入图片描述
Label (根对象,[属性列表])

参数注释
text标签名称
font字体(样式,大小)
bg (background)背景颜色(标签颜色)
fg (foreground)前景颜色(字体颜色)
width标签宽度
height标签高度
anchor锚选项,控制标签文本的位置(参数值:S,W,E,N,SE,SW,NW,NE,CENTER,默认为CENTER)
bitmap位图
relief三维效果(参数值:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT)
image与PhotoImage 一起使用,图片只能为gif图片
compound图片和文字一同显示
padx设置文本与标签边框x轴方向上距离
pady设置文本与标签边框y轴方向上的距离
cursor鼠标移动到框架时,光标的形状(参数值:arrow, circle, cross, plus 等)
justify显示多行文本的时候,设置不同行之间的对齐方式(参数值:LEFT, RIGHT, CENTER)
state设置标签状态,参数值:NORMAL、ACTIVE、 DISABLED。默认 NORMAL
wraplength指定每行文本的宽度,单位是屏幕单元
underline下划线。默认按钮上的文本都不带下划线。取值就是带下划线的字符串索引,为 0 时,第一个字符带下划线,为 1 时,第二个字符带下划线,以此类推
from tkinter import *root =Tk()
root.geometry('600x450')
label1=Label(root,text='测试1',bg='purple',font=('华文行楷',20),fg='blue')
label1.grid(row=1,column=1)label2=Label(root,text='测试2',bg='purple',font=('华文行楷',20),fg='blue',width=10,height=5,anchor=E,padx=20)
label2.grid(row=4,column=1)picture=PhotoImage(file="E:\\1.gif")#必须是真正的gif图片,改变图片的格式改不了图片的本质,无法运行
label3=Label(root,text='图片',image=picture,compound='left',relief=SUNKEN)
label3.grid(row=2,column=5)label4=Label(root,bitmap='question',bd=2,relief=SUNKEN)
label4.grid(row=1,column=5)label5=Label(root,relief=SUNKEN,text='测试5')
label5.grid(row=1,column=4)root.mainloop()

在这里插入图片描述

from tkinter import *root=Tk()
root.geometry('300x300')
root.title('hello')
root.geometry('+400+300')var=StringVar()
label=Label(root,textvariable=var,bg='yellow',font=('华文行楷',20),width=12,height=2)
label.pack()
onhit=-1
def hit():global onhitif  onhit==-1:var.set('')onhit = onhit + 1elif onhit==0:var.set('你')onhit=onhit+1elif onhit ==1:var.set('被')onhit = onhit + 1elif onhit==2:var.set('骗了')onhit = onhit + 1elif onhit==3:var.set('哈哈哈哈哈')button=Button(root,text='点击',width=12,height=2,command=hit)
button.pack()
root.mainloop()

Entry(根对象,[属性列表])

参数注释
bg背景色
fg前景色
font字体(样式,大小)
width文本框宽度
bd边框宽度
show输入显示方式
textvariable关联一个 Tkinter variable 对象, 通常为 StringVar 对象. 控件文本将在该对象改变时跟着改变.
from tkinter import *
root=Tk()
root.geometry('300x300')
root.title('hello')
root.geometry('+400+300')
entry=Entry(root,fg='blue',font=('华文行楷',20),bg='pink',width=20,bd=4,show='*')
entry.grid()
root.mainloop()

在这里插入图片描述
Text(根对象,[属性列表])

参数注释
bg背景色
fg前景色
font字体(样式,大小)
width文本框宽度
bd边框宽度
height文本框高度
from tkinter import *
root=Tk()
root.geometry('300x300')
root.title('hello')
root.geometry('+400+300')
picture=PhotoImage(file="E:\\1.gif")
text=Text(root,fg='blue',font=('华文行楷',20),bg='pink',width=10,height=4,bd=4)
text.grid()
root.mainloop()

在这里插入图片描述
Frame(根对象,[属性列表])

参数注释
bg背景色
bd边框宽度
relief三维效果
width框架宽度
from tkinter import *
root=Tk()
root.geometry('450x450')
frame=Frame(root,height=2,width=3,bd=5,relief='sunken')
frame.pack()
button=Button(frame,text='测试',bd=2)
button.pack()
root.mainloop()

Menu(根对象,[属性列表])

参数注释
bg背景色
fg前景色
font字体(样式,大小)
width文本框宽度
bd边框宽度
height文本框高度
方法注释
add_cascade添加子选项
add_command添加命令(label参数为显示内容)
add_separator添加分隔线
add_checkbutton添加确认按钮
from tkinter import *root = Tk()# 创建一个顶级菜单
menubar = Menu(root)# 创建一个下拉菜单“文件”,然后将它添加到顶级菜单中
filemenu = Menu(menubar, tearoff=False)
filemenu.add_command(label="打开")filemenu.add_separator()
filemenu.add_command(label="保存")
menubar.add_cascade(label="文件",menu=filemenu)# 创建另一个下拉菜单“编辑”,然后将它添加到顶级菜单中
editmenu = Menu(menubar, tearoff=False)
editmenu.add_command(label="拷贝")
editmenu.add_separator()
editmenu.add_command(label="粘贴")menubar.add_cascade(label="编辑", menu=editmenu)# 显示菜单
root.config(menu=menubar)
root.mainloop()

在这里插入图片描述
Canvas(根对象,[属性列表])

参数注释
bd边框宽度
bg背景色 (画布颜色)
cursor鼠标移动到框架时,光标的形状(参数值:arrow, circle, cross, plus 等)
relief三维效果(参数值:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT)
width画布宽度
height画布高度
形状方法
扇形coord = 10, 50, 240, 210 _.create_arc(coord, start=0, extent=150, fill=“blue”)
线条对象.create_line(x0, y0, x1, y1, …, xn, yn, options)
对象.create_oval(x0, y0, x1, y1, options)
至少有三个顶点的多边形对象.create_polygon(x0, y0, x1, y1,…xn, yn, options)
图像filename = PhotoImage(file = “E:\\sunshine.gif”) _.create_image(50, 50, anchor=NE, image=filename)
from tkinter import *root = Tk()canvas=Canvas(root)
coord = 10, 50, 240, 210
canvas.create_arc(coord, start=0, extent=150, fill="blue")line = canvas.create_line(10, 20, 30, 40)canvas.create_oval(150,150,190,190)
canvas.create_polygon(270,270,190,190,210,240)
canvas.pack()
root.mainloop()

在这里插入图片描述

弹窗messagebox

注意此处需重新导入tkinter 中的messagebox
from tkinter import messagebox

种类方法
消息提示框messagebox.showinfo(‘弹窗名称’,'弹窗内容 ')
消息警告框messagebox.showwarning(‘弹窗名称’,'弹窗内容 ')
错误消息框messagebox.showerror(‘弹窗名称’,'弹窗内容 ’ )
对话框messagebox.askokcancel(‘弹窗名称’, '弹窗内容 ')确定/取消,返回值true/false
对话框messagebox.askquestion (‘弹窗名称’, '弹窗内容 ')是/否,返回值yes/no
对话框messagebox.askyesno (‘弹窗名称’,'弹窗内容 ')是/否, 返回值true/false
对话框messagebox.askretrycancel (‘弹窗名称’,'弹窗内容 ')重试/取消,返回值true/false

事件绑定
在此不详细介绍,大家可以看这篇博客
事件绑定
tkinter 中的界面颜色表
在这里插入图片描述
提供一个完整的程序供大家参考
绩点计算小程序


http://chatgpt.dhexx.cn/article/3op7lsON.shtml

相关文章

python tkinter详解

PYTHON TKINTER Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的平台下使用,同样可以应用在 Windows 和 Mac系统里。 与tkinter齐名的还有wxpython,jython,pyqt(pyqt5)。其中&#x…

python-tkinter 官方文档

python-tkinter官方文档 防盗声明:在其他网站看到的都是盗版的 本文源地址唯一地址 https://blog.csdn.net/weixin_44331765/article/details/120923775 搜了好多都收费,用官网的文档赚钱也是够了,分享一个给大家,互相学习。 1…

python --Tkinter详解

简介 tkinter tkinter(Tk interface)是Python的标准GUl库,支持跨平台的GUl程序开发。tkinter适合小型的GUl程序编写,也特别适合初学者学习GUl编程。 wxPython wxPython是比较流行的GUI库,适合大型应用程序开发,功能强于tkinter,整…

【Python】GUI编程(Tkinter)教程

什么是Tkinter? Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。 由于 Tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinte…

Tkinter教程(每天半小时,3天彻底掌握Tkinter)day1

Tkinter教程(每天半小时,3天彻底掌握Tkinter)day1 目录 Tkinter教程(每天半小时,彻底掌握Tkinter)day1 教程环境 Tkinter概述 GUI是什么 Tkinter是什么 Tkinter的弊端 第一个Tkinter程序 插入ico 关闭python窗体 python窗体居中设置 护眼色_颜…

【Python】Tkinter教程

什么是Tkinter? Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。 由于 Tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinte…

Tkinter保姆级教程(下)

继上次肝了几天的Tkinter保姆级教程(上),接下来继续肝教程下,冲冲冲。 目录 Scale控件 Canvas画布控件 Menu菜单控件 Scrollbar滚动条控件 Event事件处理 布局管理器(pack,grid,place&am…

Python Tkinter教程(一)——tkinter编程基本步骤、窗口基本属性及Toplevel控件的使用

>>>【上节回顾&#xff1a;Python Tkinter 模块简要介绍】<<< Python Tkinter教程&#xff08;一&#xff09; 这篇博客将详细地介绍如何使用tkinter模块进行简单的GUI编程&#xff08;包括基本步骤、窗口基本属性&#xff09;&#xff0c;同时还会解释如何使…

Tkinter教程

文章目录 Tkinter教程&#xff08;非常详细&#xff09;教程特点阅读条件 GUI是什么GUI发展史GUI应用领域GUI的优势GUI开发工具 Tkinter是什么第一个Tkinter程序1) 主窗口设置2) 添加文本3) 添加按钮4) 独立运行tkinter程序 Tkinter常用控件和属性控件类型控件基本属性 Tkinter…

超全!Tkinter 使用教程!4000字!

人生苦短&#xff0c;快学Python&#xff01; 本期案例是带着大家制作一个属于自己的GUI图形化界面—>用于设计签名的哦(效果如下图)&#xff0c;是不是感觉很好玩&#xff0c;是不是很想学习呢&#xff1f;限于篇幅&#xff0c;今天我们首先详细讲述一下Tkinter的使用方法。…

Openface (三) EYE GAZE 数据集

三维视线估计 1、Eyediap 数据集 &#xff1a;利用深度摄像头标注 RGB 视频中的眼睛中心点位置和乒乓球位置。把这两个位置映射到深度摄像头记录的三维点云中&#xff0c;从而得到对应的三维位置坐标。这两个三维位置坐标相减后即得到视线方向。 https://www.idiap.ch/en/data…

OpenFaceswap 入门教程(1):软件安装篇

众多换脸软件中&#xff0c;DeepFaceLab其实是安装和使用最方便&#xff0c;更新最快的&#xff0c;但是由于其没有可是化界面&#xff0c;对于很新手来说&#xff0c;可能入门还是有点难度。那么今天就来介绍一款操作极其直观和简单的换脸软件OpenFaceSwap。这款软件的安装和使…

「图像处理」使用Python+Openface实现人脸识别与关键点(landmarks)检测

1、如何在Python上安装OpenFace 下载安装 1、首先需要下载OpenFace源码&#xff1a; &#xff08;Anaconda、Git等自行提前安装&#xff09; git clone https://github.com/cmusatyalab/openface.git 2、接着进入openface路径 cd openface 3、执行&#xff1a; pip ins…

openface的导出数据说明

openface的导出数据说明&#xff0c;因为自己使用的时候一个一个翻译起来比较麻烦&#xff0c;就自己弄了一个。 原文GitHub地址&#xff1a;https://github.com/TadasBaltrusaitis/OpenFace/wiki/Command-line-arguments ZD到最后的列&#xff1a;是面部动作编码系统 &#…

【TensorFlow】人脸识别OpenFace、Face-recognition、Insightface和FaceNet源码运行

比较人脸识别OpenFace、Face-recognition、Insightface&#xff1a; FaceNet源码运行 https://github.com/davidsandberg/facenet 1、使用Anaconda安装TensorFlow&#xff1b; 2、更新scipy库&#xff1b; 3、添加os.environ["KMP_DUPLICATE_LIB_OK"]"TRUE&…

windows下OpenFace安装及测试

想使用openface来实现以下视线估计的内容&#xff0c;但是搜了好多都没有具体的使用方案&#xff0c;于是经历了半周&#xff0c;仔细阅读官方文档和参考了一些大佬的经验&#xff0c;终于运行成功了&#xff0c;在此记录一下&#xff0c;嘻嘻 安装 openceface安装官方文档&…

Ubuntu 14.04下openface的环境搭建

如需转载请标明出处&#xff1a;http://blog.csdn.net/itas109 QQ技术交流群&#xff1a;129518033 一、什么是openface&#xff1f; openface是一个基于深度神经网络的开源人脸识别系统。该系统基于谷歌的文章FaceNet: A Unified Embedding for Face Recognition and Clust…

Windows 11 下 OpenFace 2.2.0 的安装

写在前面 最近需要做关于面部的东西&#xff0c;所以需要使用到OpenFace这个工具&#xff0c;本文仅用来记录本人安装过程以供后续复现&#xff0c;如果可以帮助到读者也是非常荣幸。 安装过程 不编译直接使用 这种方法可以直接从官方下载下来编译好的exe以及gui进行使用&a…

Openface人脸识别的原理与过程

Openface人脸识别的原理与过程&#xff1a; https://zhuanlan.zhihu.com/p/24567586 原理可参考如下论文&#xff1a; 《OpenFace: A general-purpose face recognition library with mobile applications》 第一步&#xff1a;找出所有的面孔 我们流水线的第一步是人脸检测。…

openface在pycharm上的安装

1、下载openface相关文件 链接&#xff1a;下载openface:GitHub - cmusatyalab/openface: Face recognition with deep neural networks. 下载后得到一个openface-master的文件夹 2、输入cmd&#xff0c;进入命令提示符&#xff0c;找到自己保存的openface-master文件夹路径。 …