目录
2.1 text,font,bg,fg,width,height
2.2 command,padx,pady,bd,anchor
2.3 image,relief,bitmap,compound,cursor
2.4 justify,state,wraplength,underline
6.1 tearoff,activebackground,activeforeground
6.3 方法展示:insert_separator(index)
7.1 方法展示:create_line(),create_restangle(),create_oval(),create_text(),create_image()
7.2 方法展示:delete(),move(),itemconfig()
前言
本文致力与帮助想要需要Tkinter的小伙伴,内容详细简介明了不臃肿,会详细的介绍Tkinter的常用操作以及核心组件和它们的重要参数。想要学习的小伙伴一定要认真观看喔~
模块导入
tk为python只带的标准库,不需要下载,直接导入。
from tkinter import *
tkinter核心组件
label | 标签 | 用来显示文字或图片 |
---|---|---|
Button | 按钮 | 类似标签,但提供额外的功能,例如鼠标掠过、按下、释放以及键盘操作、事件 |
Entry | 单行文字域 | 用来收集键盘输入 |
Text | 多行文字区域 | 可用来收集(或显示)用户输入的文字 |
Frame | 框架 | 包含其他组件的纯容器 |
Checkbutton | 选择按钮 | 一组方框,可以选择其中的任意个 |
Listbox | 列表框 | 一个选项列表,用户可以从中选择 |
Menu | 菜单 | 点下菜单按钮后弹出的一个选项列表,用户可以从中选择 |
Menubutton | 菜单按钮 | 用来包含菜单的组件(有下拉式、层叠式等等) |
Message | 消息框 | 类似于标签,但可以显示多行文本 |
Radiobutton | 单选按钮 | 组按钮,其中只有一个可被“按下” (类似 HTML 中的 radio) |
Scale | 进度条 | 线性“滑块”组件,可设定起始值和结束值,会显示当前位置的精确值 |
Scrollbar | 滚动条 | 对其支持的组件(文本域、画布、列表框、文本框)提供滚动功能 |
Toplevel | 顶级 | 类似框架,但提供一个独立的窗口容器 |
Canvas | 绘画 | 提供绘图功能(直线、椭圆、多边形、矩形) 可以包含图形或位图 |
基础架构
第一步 导入tk模块
from tkinter import *
第二步 获取TK对象
root = Tk()
第三步 指定窗口大小位置
# 指定了窗口的宽度、高度和位置。
root.geometry('600x450+400+200')
# 宽度为600像素
# 高度为450像素
# 位置在屏幕上的坐标为(x=400, y=200)
第四步 主窗口标题
# 主窗口的框体的标题
root.title('title')
第五步 显示主窗口
root.mainloop() # 显示主窗口
总和
from tkinter import *
root = Tk()
root.geometry('400x300+400+200')
root.title('title')
"""
此处写tk框架组件
"""
root.mainloop()
1、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 时,第二个字符带下划线,以此类推 |
1.1 text,bg,font,fg
from tkinter import *
root = Tk()
root.geometry('400x300+400+200')
root.title('title')
# ------
label1 = Label(root, text='测试1', bg='purple', font=('华文行楷', 20), fg='blue')
label1.grid(row=1, column=1)
# ------
root.mainloop()
其中 grid(row=1,column=1) 代表着当前标签位置于 第一行第一列
text为标签名“测试1”
bg为底色“purple”紫色
font为字体“华文行楷”以及字体大小“20”
fg为字体颜色“bule”蓝色
1.2 width,height,anchor,padx
from tkinter import *
root = Tk()
root.geometry('400x300+400+200')
root.title('title')
# ------
label2 = Label(root, text='测试2', bg='purple', font=('华文行楷', 20), fg='blue', width=8, height=3, anchor=E, padx=20)
label2.grid(row=2, column=1)
# ------
root.mainloop()
其中 grid(row=2,column=1) 代表着当前标签位置于 第二行 第一列。而因为前面没有内容行,因此标签显示在第一行。
width为宽度“8”
height为高度"3"
anchor=E为文本在标签中的位置
padx=20为文本与标签边框x轴方向上距离20
1.3 image,compound,relief
from tkinter import *
root = Tk()
root.geometry('400x300+400+200')
root.title('title')
# ------
preview = PhotoImage(file=r'Aa_图片素材库/preview.gif')
label3 = Label(root, text='图片', image=preview, compound='left', relief=SUNKEN)
label3.grid(row=2, column=2)
# ------
root.mainloop()
PhotoImage(file="....")中的file为gif图片文件位置
image与PhotoImage 一起使用,为标签显示当前图片,且图片只能为gif图片
compound为表示图片和文字一同显示,left表示图片显示在标签左边
relief为三维效果,且SUNKEN为显示方式
1.4 bitmap,bd
from tkinter import *
root = Tk()
root.geometry('400x300+400+200')
root.title('title')
# ------
label4 = Label(root, bitmap='error', bd=3, relief=SUNKEN)
label4.grid(row=2, column=4)
label5 = Label(root, relief=SUNKEN, text='bitmap位图测试')
label5.grid(row=2, column=3)
# ------
root.mainloop()
bd为
指定标签部件的边框宽度,这里设置为3像素
bitmap
用于指定在标签部件中显示的位图。'error'表示显示一个带有问题图标的位图。它们有如下'error'、'info'、'question'等,分别代表错误、信息和问题图标。也可以自定义的位图文件。