Tkinter库的学习记录02-Label

2、标签Label

属性设置

Label()方法可以用于在窗口内建立文字或图像标签,有关图像标签的内容将在后续讨论,语法格式如下:

Label(父对象,option, ...)

参数一:表示这个标签将建立在哪一个父对象(父窗口或者容器)内

其它option参数():

(1) anchor:如果空间大于所需时,控制标签的位置,默认是CENTER(居中)

Literal'nw', 'n', 'ne', 'w', 'center', 'e', 'sw', 's', 'se',表示东南西北,

注意使用小写anchor="se",使用大写anchor=SE

(2) bg或background:背景色彩。

(3) fg或foreground:前景色彩,标签的颜色

(4) bordedwidth或bd:标签边界宽度,默认是1。

(5) compound:可以设置标签内含图像和文字时,彼此的位置关系。

left:图像在左。

right:图像在右。

top:图像在上。

bottom:图像在下。

center:文字覆盖在图像上方。

(6) cursor:当鼠标光标在标签上方时的外形。

(7) bitmap:使用默认图标当作标签内容。

系统默认的图标:error、hourglass、info、questhead、question、warning、

gray12、gray25,gray50、gray75

(8) font:可选择字形、字形样式与大小。

字形family:如Helvetica,Times等,可以自行进入Word内参考所有系统字形。

字号size:单位是像素。

weight:例如bold、normal。

slant:例如italic、roman,如果不是talic则是roman

underline:例如True、False

overstrike:例如True、False

(9) height:标签高度,单位是字符。

(10) width:标签宽度,单位是字符。

(11) image:标签以图像方式呈现。

(12) padx/pady:标签文字与标签区间的间距,单位是像素。.

padx可以设置标签文字左右边界与标签区间的x轴间距,pady可以设置标签文字上下

边界与标签区间的y轴间距。

(13) relief:默认是relief=FLAT,可由此控制标签的外框。

(14) text:标签内容,如果有"\n" 则可输入多行文字。

(15) textvariable:可以设置标签以变量方式显示。

(16) underline:可以设置第几个文字有下画线,从0开始算起,默认是-1,表示无下画线。

(17) justify:存在多方文本时最后一行的对齐方式,可取值有LEFT / CNETER / RIGHT(靠左/居中/靠右),默认是居中对齐。

(18) wraplength:文本到多少宽度后换行,单位是像素。

图像PhotoImage

图片可以应用在许多对方,例如标签、功能按钮、选项按钮、文字区域等。在使用前可以用PhotoImage()方法建立图像对象,然后再将此对象应用在其他窗口组件上。语法如下

python 复制代码
imageobj = PhotoImage(file="xxx.gif")  # 扩展名gif,传回图像对象

PhotoImage()方法早期只支持gif文件格式,不接受常用的jpg或png格式的图像,目前已经可以支持png格式了。可以在Label()方法内使用"image=imageobj"参数设置此图像对象。

如果想要在标签内显示jpg文件,需要借助PIL模块的Image和ImageTk模块,需要先导入pillow模块。

注意在程序设计中需导入的是PIL模块,主要原因是要向旧版Python Image Library兼容,如下所示

python 复制代码
from tkinter import *
from PIL import Image, ImageTk

root = Tk()
root.title("my window")
root.geometry("680x400")

image = Image.open("xxx.jpg")
yellowstone = ImageTk.PhotoImage(image)
label = Label(root, image=yellostone)
label.pack()

root.mainloop()

注意:bitmap参数和image参数不能共存,如果发生这种情况,bitmap参数将不起作用。

Config()方法

widget控件在建立时可以直接设置对象属性,若是部分属性未建立,未来在程序运行时如果想要建立或是更改属性可以使用config()方法。此方法内属性设置的参数用法与建立时相同。

python 复制代码
from tkinter import *

counter = 0                                     # 计数的全局变量
def run_counter(digit):                         # 数字变量内容的更新
    def counting():                             # 更新的数字方法
        global counter                          # 
        counter += 1                            # 定义全局变量
        digit.config(text=str(counter))         # 列出数字内容
        digit.after(1000, counting)             # 隔一秒后调用counting
    counting()                                  # 持续调用

root = Tk()
root.title("ch2_23")
digit = Label(root, bg="yellow", fg="blue", height = 3, width=10, font=("Helvetica", 20, "bold"))
digit.pack()
run_counter(digit=digit)

root.mainloop()

keys()方法

调用这个方法会用一个列表传回这个widget所有的参数。

分割线

python 复制代码
Separator(父对象, option)

参数一:父对象,表示这个分隔线将建立在哪一个父对象内;

options参数如果是HORIZONTAL则建立水平分割线,VERTICAL则建立垂直分隔线。

python 复制代码
from tkinter import *
from tkinter.ttk import Separator

root = Tk()
root.title("ch2_26")

myTitle = "一个人的极境旅行"
myContent = """2016年12月,我一个人订了机票和船票,
开始我的南极旅行,飞机经迪拜再往阿根廷的乌斯环亚,
在此我登上邮轮开始我的南极之旅。"""

lab1 = Label(root, text=myTitle, font=("Helvetica", 20, "bold"))
lab1.pack(padx=10, pady=10)

sep = Separator(root, orient=HORIZONTAL)
sep.pack(fill=X, padx=5)  # 表示此分割线填满X轴,与窗口边界左右均相距5像素

lab2 = Label(root, text=myContent)
lab2.pack(padx=10, pady=10)

root.mainloop()
相关推荐
RFID固定资产管理系统20 分钟前
公司RFID管理系统揭秘
大数据·python
IVEN_24 分钟前
Python官方包、Conda、uv,应该怎么选
python
凡尘——雨落凡尘1 小时前
Python列表索引越界IndexError问题深度解析与解决办法
python·indexerror·list index out of range
Metaphor6922 小时前
使用 Python 在 Word 文档中添加或删除文本框
python·word
郝同学今天有进步吗2 小时前
构建 LangGraph Code Review Agent(七):实现规则匹配、Finding Guardrails 与 Markdown 报告
python·ai·fastapi·code review
xuhe22 小时前
一劳永逸!解决 AutoDL 系统盘(30GB)爆满与 pip 缓存迁移
linux·python·ai·jupyter
CodexDave3 小时前
Python 自动化接单实战(一):把 CSV 需求做成配置驱动解析器
java·python·自动化·json·数据清洗·python自动化·csv处理
m沐沐3 小时前
【深度学习】循环神经网络RNN——结构、原理与长期依赖问题解析
人工智能·pytorch·python·rnn·深度学习·算法·机器学习
风吹心凉4 小时前
python3基础2026.7.28
开发语言·python
曲无忆4 小时前
LLMs赋能依赖类型证明自动化
python