前言
本篇文章主要讲Tkinter库的Label标签控件,Message控件和文本控件Text,以及相对关的属性和方法以及示例。
导航
pillow库的使用篇
- 图像处理库Pillow(PIL)的使用-1(实例+详细注释+图片脚本)
- 图像处理库Pillow(PIL)的使用-2(实例+详细注释+图片脚本)
- 图像处理库Pillow(PIL)的使用-3(实例+详细注释+图片脚本)
Tkiner库的使用篇
- 图形化界面的开发(GUI):Tkinter库的使用-1(综述)
- 图形化界面的开发(GUI):Tkinter库的使用-2(Label+Message+Text)
- 图形化界面的开发(GUI):Tkinter库的使用用-3(Button+Radiobutton+Checkbutton)
- 图形化界面的开发(GUI):Tkinter库的使用-4(Entry+Spinbox+Listbox+Combobox)
- 图形化界面的开发(GUI):Tkinter库的使用-5(Menu+Canvas+Scale+Scrollbar)
图片脚本篇
- python图片脚本1-批量处理图片尺寸(详细注释+GUI界面+exe可执行文件)
- python图片脚本2-图片文件批量命名(详细注释+GUI界面+exe可执行文件)
- python图片脚本3-批量图片格式转换-(详细注释+GUI界面+exe可执行文件)
- python图片脚本4-批量图片加水印(详细注释+GUI界面+exe可执行文件)
Label控件的使用
- 我们在上篇文章中讲了一个tkinter程序,至少包含主窗口window
和启动窗口window.mainloop(),其中所有的控件就加在这其中。
import tkinter as tk
# 创建窗口
window = tk.Tk()
# 设置窗口标题
window.title("第一个窗口")
# 设置窗口大小
window.geometry("400x300")
# 显示窗口
window.mainloop()
标签控件(Label)可以在指定的窗口显示文本和图像。如果想显示一行文字或者多行文字且不允许用户修改,可以使用标签Label控件 。
语法如下:
res = Label(window,**params)
- window:框架的父容器,即窗口对象。
- **params:其他参数
常用属性
下面是Label一些常用属性:
属性名称 | 说明 |
anchor | 控制文本(或图像)在 Label 中显示的位置(方位),通过方位的英文字符串缩写(n、ne、e、se、s、sw、w、nw、center)实现定位,默认为居中(center) |
bg | 用来设置背景色 |
bd | 即 borderwidth 用来指定 Label 控件的边框宽度,单位为像素,默认为 2 个像素 |
bitmap | 指定显示在 Label 控件上的位图,若指定了 image 参数,则该参数会被忽略 |
compound | 控制 Lable 中文本和图像的混合模式,若选项设置为 CENTER,则文本显示在图像上,如果将选项设置为 BOTTOM、LEFT、RIGHT、TOP,则图像显示在文本旁边。 |
cursor | 指定当鼠标在 Label 上掠过的时候,鼠标的的显示样式,参数值为 arrow、circle、cross、plus |
disableforeground | 指定当 Label 设置为不可用状态的时候前景色的颜色 |
font | 指定 Lable 中文本的 (字体,大小,样式)元组参数格式,一个 Lable 只能设置一种字体 |
fg | 设置 Label 的前景色 |
height/width | 设置 Lable 的高度/宽度,如果 Lable 显示的是文本,那么单位是文本单元,如果 Label 显示的是图像,那么单位就是像素,如果不设置,Label 会自动根据内容来计算出标签的高度 |
highlightbackground | 当 Label 没有获得焦点的时候高亮边框的颜色,系统的默认是标准背景色 |
highlightcolor | 指定当 Lable 获得焦点的话时候高亮边框的颜色,系统默认为0,不带高亮边框 |
image | 指定 Label 显示的图片,一般是 PhotoImage、BitmapImage 的对象 |
justify | 表示多行文本的对齐方式,参数值为 left、right、center,注意文本的位置取决于 anchor 选项 |
padx/pady | padx 指定 Label 水平方向上的间距(即内容和边框间),pady 指定 Lable 水平方向上的间距(内容和边框间的距离) |
relief | 指定边框样式,默认值是 “flat”,其他参数值有 “groove”、“raised”、“ridge”、“solid"或者"sunken” |
state | 该参数用来指定 Lable 的状态,默认值为"normal"(正常状态),其他可选参数值有"active"和"disabled" |
takefocus | 默认值为False,如果是 True,表示该标签接受输入焦点 |
text | 用来指定 Lable 显示的文本,注意文本内可以包含换行符 |
underline | 给指定的字符添加下划线,默认值为 -1 表示不添加,当设置为 1 时,表示给第二个文本字符添加下划线。 |
wraplength | 将 Label 显示的文本分行,该参数指定了分行后每一行的长度,默认值为 0 |
示例
Label控件最简单的示例:
import tkinter as tk # 导入tkinter模块并简写为tk
# 创建窗口
window = tk.Tk()
# 创建Label标签 显示文本内容
label = tk.Label(window, text="小小啊python")
# 放置Label标签
label.pack( )
# 启动窗口
window.mainloop()
效果1
加一些参数的示例:
import tkinter as tk # 导入tkinter模块并简写为tk
# 创建窗口
window = tk.Tk()
# 窗口标题
window.title("Label窗口")
# 窗口大小
window.geometry("400x300")
# 创建Label标签 显示文本内容,并设置字体
label = tk.Label(window, text="小小啊python", font=("Arial", 16),width=200,bg="orange",fg="pink")
# 放置Label标签,并设置标签位置
label.pack( padx=10,pady=30)
# 启动窗口
window.mainloop()
效果2
Message控件
Message 控件与 Label 控件的功能类似,它主要用来显示多行不可编辑的文本信息,与 Label 的不同之处在于该控件增加了自动分行的功能。
示例
import tkinter as tk # 导入tkinter模块并简写为tk
# 创建窗口
window = tk.Tk()
# 窗口标题
window.title("Message窗口")
# 窗口大小
window.geometry("400x300")
# 创建Label标签 显示文本内容,并设置字体
label = tk.Message(window, text="如果错过凌晨五点的日出 不妨看看傍晚六点的夕阳", font=("../ttf/IBMPlexSansSC-Text.ttf", 16),width=270,bg="red",fg="blue")
# 放置Label标签,并设置标签位置
label.pack( padx=10,pady=30)
# 启动窗口
window.mainloop()
效果
Text文本控件
Text 文本控件是 Tkinter 中经常使用的控件,它主要用于显示和编辑多行文本
常见参数
属性 | 说明 |
autoseparators | 默认为 True,表示执行撤销操作时是否自动插入一个“分隔符”(其作用是用于分隔操作记录) |
exportselection | 默认值为 True,表示被选中的文本是否可以被复制到剪切板,若是 False 则表示不允许。 |
insertbackground | 设置插入光标的颜色,默认为 BLACK |
insertborderwidth | 设置插入光标的边框宽度,默认值为 0 |
insertofftime | 该选项控制光标的闪烁频频率(灭的状态) |
insertontime | 该选项控制光标的闪烁频频率(亮的状态) |
selectbackground | 指定被选中文本的背景颜色,默认由系统决定 |
selectborderwidth | 指定被选中文本的背景颜色,默认值是0 |
selectforeground | 指定被选中文本的字体颜色,默认值由系统指定 |
setgrid | 默认值是 False,指定一个布尔类型的值,确定是否启用网格控制 |
spacing1 | 指定 Text 控件文本块中每一行与上方的空白间隔,注意忽略自动换行,且默认值为 0。 |
spacing2 | 指定 Text 控件文本块中自动换行的各行间的空白间隔,忽略换行符,默认值为0 |
spacing3 | 指定 Text 组件文本中每一行与下方的空白间隔,忽略自动换行,默认值是 0 |
tabs | 定制 Tag 所描述的文本块中 Tab 按键的功能,默认被定义为 8 个字符宽度,比如 tabs=(‘1c’, ‘2c’, ‘8c’) 表示前 3 个 Tab 宽度分别为 1厘米,2厘米,8厘米。 |
undo | 该参数默认为 False,表示关闭 Text 控件的“撤销”功能,若为 True 则表示开启 |
wrap | 该参数用来设置当一行文本的长度超过 width 选项设置的宽度时,是否自动换行,参数值 none(不自动换行)、char(按字符自动换行)、word(按单词自动换行) |
xscrollcommand | 该参数与 Scrollbar 相关联,表示沿水平方向上下滑动 |
yscrollcommand | 该参数与 Scrollbar 相关联,表示沿垂直方向左右滑动 |
基本方法
方法 | 说明 |
bbox(index) | 返回指定索引的字符的边界框,返回值是一个 4 元组,格式为(x,y,width,height) |
edit_modified() | 该方法用于查询和设置 modified 标志(该标标志用于追踪 Text 组件的内容是否发生变化) |
edit_redo() | “恢复”上一次的“撤销”操作,如果设置 undo 选项为 False,则该方法无效。 |
edit_separator() | 插入一个“分隔符”到存放操作记录的栈中,用于表示已经完成一次完整的操作,如果设置 undo 选项为 False,则该方法无效。 |
get(index1, index2) | 返回特定位置的字符,或者一个范围内的文字。 |
image_cget(index, option) | 返回 index 参数指定的嵌入 image 对象的 option 选项的值,如果给定的位置没有嵌入 image 对象,则抛出 TclError 异常 |
image_create() | 在 index 参数指定的位置嵌入一个 image 对象,该 image 对象必须是 Tkinter 的 PhotoImage 或 BitmapImage 实例。 |
insert(index, text) | 在 index 参数指定的位置插入字符串,第一个参数也可以设置为 INSERT,表示在光标处插入,END 表示在末尾处插入。 |
delete(startindex [, endindex]) | 删除特定位置的字符,或者一个范围内的文字。 |
see(index) | 如果指定索引位置的文字是可见的,则返回 True,否则返回 False。 |
示例
import tkinter as tk # 导入tkinter模块并简写为tk
# 创建窗口
window = tk.Tk()
# 窗口标题
window.title("Text窗口")
# 窗口大小
window.geometry("400x300")
# 创建Text标签 显示文本内容,并设置字体,背景,以及文本选中颜色
text = tk.Text(window, height=5, width=50, font=("Arial", 16),bg="pink",fg="blue",selectbackground="yellow")
# 放置Text标签,并设置标签位置
text.pack( padx=10,pady=30)
# 清空文本内容
text.delete("1.0", tk.END)
# 插入文本内容
text.insert(tk.END, "小小啊python")
# 启动窗口
window.mainloop()
效果
共勉
流水不争先,争的是滔滔不绝!
博客
- 本人是一个渗透爱好者,不时会在微信公众号(laity的渗透测试之路)更新一些实战渗透的实战案例,感兴趣的同学可以关注一下,大家一起进步。
- 之前在公众号发布了一个kali破解WiFi的文章,感兴趣的同学可以去看一下,在b站(up主:laity1717)也发布了相应的教学视频。