tkinter學習系列(三)之Label控件


目錄

前言

Label是用於顯示文本或圖像的控件。

(一)基本用法和可選屬性

1.基本用法

基本用法:Label(根對象, [屬性列表])

根對象:在那個窗體顯示,例如主窗體。

屬性列表:是可選的屬性=屬性值組成。

2.可選屬性

屬性 說明
text 標簽顯示的文本
font 設置文本的字體和大小
fg(foreground) 字體的顏色,
bg (background) 標簽的背景色
width 標簽的寬度(一個中文的字體寬為單位)
height 標簽的高度(一個中文的字體高為單位)
padx 文字到邊框的距離,水平方向
pady 文字到邊框的距離,垂直方向
bd(borderwidth) 邊框的寬度
relief 邊框的樣式
justify 文本對齊方式
image 圖片
compound 圖片與文字的混搭
anchor 方位

(二)屬性的具體使用

1.常用屬性

(1)font

font:設置字體與字體的大小

用法:font=("字體名",大小) 例如:font=(“黑體”, 20)

(2)fg 與 bg

fg 前景色,也就是字體的顏色,bg 背景顏色

用法:fg="red", fg="#121234"

(3)width 與 height

width height 標簽的寬度與高度,都是以系統默認的中文的一個字體寬高為單位

用法:width = 5, height=2

2.邊距與文本對齊方式

(1)邊距:padx 與 pady

文字到邊框的距離 padx 與 pady 水平與豎直方向

用法:padx=2, pady = 1 ,單位是像素,默認是1像素

(2)文本對齊方式:justify

Label 里的文本支持 轉移字符 \n \t 等

用法:justify="left" ,可取 "left" ,"right", "center" ,默認是"center"居中對齊

案例一

import tkinter as tk

# 背景色與前景色
win = tk.Tk()
label_1 = tk.Label(win, text='fg="red" bg="blue"', fg="red", bg="blue")
label_1.pack()

# 字體與字體的大小
label_2 = tk.Label(win, text='font=("微軟雅黑", 20)', font=("微軟雅黑", 20))
label_2.pack()

# 寬度與高度
label_3 = tk.Label(win, text='width=10, height=3', bg="yellow", width=10, height=3)
label_3.pack()
label_4 = tk.Label(win, text='width=20, height=1', bg="yellow", width=20, height=1)
label_4.pack()

# 邊距
label_5 = tk.Label(win, text='padx pady 默認', bg="blue")
label_5.pack()
label_6 = tk.Label(win, text='padx=0, pady=0', bg="blue", padx=0, pady=0)
label_6.pack()
label_7 = tk.Label(win, text='padx=10, pady=10', bg="blue", padx=10, pady=10)
label_7.pack()

# 對齊方式
label_8 = tk.Label(win, text="我是張一根,一匹想飛的狼,\n999號哦")
label_8.pack()
label_9 = tk.Label(win, text="我是張一根,一匹想飛的狼,\n999號哦", justify="left")
label_9.pack()
label_9 = tk.Label(win, text="我是張一根,一匹想飛的狼,\n999號哦", justify="right")
label_9.pack()

win.mainloop()

案例一的效果

01.png

3.Label里放圖片

(1)只放圖片,沒有文字

需要先導入圖片的路徑:img1 = tk.PhotoImage(file="image/01.png")

再使用:image=img1

注:目前支持 .png 與 .gif 格式, 還不支持 .jpg格式

案例二

import tkinter as tk

win = tk.Tk()

# 導入圖片
img1 = tk.PhotoImage(file="image/01.png")

# 在標簽里放入圖片
label_image1 = tk.Label(win, image=img1)
label_image1.pack()

win.mainloop()

案例二的效果

02.png

(2)圖片與文字混搭

需要使用:compound="對齊方式",

對齊方式有:'left', "right", "center"

案例三

import tkinter as tk

win = tk.Tk()

# 導入圖片
img1 = tk.PhotoImage(file="image/01.png")

# 在標簽里放入圖片
label_image1 = tk.Label(win, text="圖文並茂", image=img1, compound="left")
label_image1.pack()

label_image2 = tk.Label(win, text="圖文並茂", image=img1, compound="right")
label_image2.pack()

label_image3 = tk.Label(win, text="圖文並茂", image=img1, compound="center", fg="red")
label_image3.pack()

win.mainloop()

案例三的效果

03.png

4.Label可變的文字內容

先定義一個:tk變量,v = tk.StringVar()

在使用:textvariable=v

案例四

import tkinter as tk
import time

# 背景色與前景色
win = tk.Tk()

# 定義變量,必須是使用的是tk里的這個變量
v = tk.StringVar()

# 使用v.set("string") 來定義變量
v.set("這是剛開始的文字")

# 在標簽里添加可變的文本
label_1 = tk.Label(win, textvariable=v, fg="red", bg="green", font=("黑體", 40))
label_1.pack()
while True:
    v.set("%s" % time.ctime())
    label_1.update()
    time.sleep(1)

win.mainloop()

案例四的效果

可以制作一個時間表

04.png

4.文字所在標簽框的方位

anchor 可選的參數有:"e","w","s","n","ne","se","nw","sw",就是東西南北八個方向

anchor="n"

案例五

import tkinter as tk

win = tk.Tk()
label_1 = tk.Label(win, text="方位是 N", bg="green", width=10, height=3, anchor="n")
label_1.pack()

label_2 = tk.Label(win, text="方位是 NE", bg="blue", width=10, height=3, anchor="ne")
label_2.pack()

label_3 = tk.Label(win, text="方位是 SW", bg="red", width=10, height=3, anchor=tk.SW)
label_3.pack()

label_4 = tk.Label(win, text="方位是 W", bg="yellow", width=10, height=3, anchor=tk.W)
label_4.pack()
win.mainloop()

案例五的效果

05.png

5.邊框樣式與寬度

relief 表示邊框樣式,可選的參數有:flat(平的),sunken (沉沒的, 凹下去的),raised (提高,凸出來的),ridge(脊,中鍵凸的)

relief="sunken", 默認是flat.

案例六

import tkinter as tk

win = tk.Tk()


# 在標簽里放入圖片SUNKEN, RAISED, GROOVE, and RIDGE
# 默認 flat平的
label_1 = tk.Label(win, text='relief=flat', bd=8)
label_1.pack()

# sunken 沉沒的
label_2 = tk.Label(win, text='relief=sunken', relief="sunken", bd=5)
label_2.pack()

# raised 提高
label_3 = tk.Label(win, text='relief=raised', relief="raised", bd=5)
label_3.pack()

# ridge脊
label_4 = tk.Label(win, text='relief=ridge', relief="ridge", bd=10)
label_4.pack()

win.mainloop()

案例六的效果

06.png

作者:Mark

日期:2019/01/31 周四


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM