目錄
目錄
- 目錄
- 前言
- (一)基本用法和可選屬性
- 1.基本用法
- 2.可選屬性
- (二)屬性的具體使用
- 1.常用屬性
- (1)font
- (2)fg 與 bg
- (3)width 與 height
- 2.邊距與文本對齊方式
- (1)邊距:padx 與 pady
- (2)文本對齊方式:justify
- 案例一
- 案例一的效果
- 3.Label裡放圖檔
- (1)隻放圖檔,沒有文字
- 案例二
- 案例二的效果
- (2)圖檔與文字混搭
- 案例三
- 案例三的效果
- 4.Label可變的文字内容
- 案例四
- 案例四的效果
- 4.文字所在标簽框的方位
- 案例五
- 案例五的效果
- 5.邊框樣式與寬度
- 案例六
- 案例六的效果
- 作者:Mark
- 日期:2019/01/31 周四
- 1.常用屬性
前言
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 裡的文本支援 轉移字元
等
用法: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="我是張一根,一匹想飛的狼,
999号哦")
label_8.pack()
label_9 = tk.Label(win, text="我是張一根,一匹想飛的狼,
999号哦", justify="left")
label_9.pack()
label_9 = tk.Label(win, text="我是張一根,一匹想飛的狼,
999号哦", justify="right")
label_9.pack()
win.mainloop()
案例一的效果
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()
案例二的效果
(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()
案例三的效果
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()
案例四的效果
可以制作一個時間表
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()
案例五的效果
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()