tkinter學習系列(三)之Label控件
目錄
- 目錄
- 前言
- (一)基本用法和可選屬性
- ==1.基本用法==
- ==2.可選屬性==
- (二)屬性的具體使用
- ==1.常用屬性==
- ==2.邊距與文本對齊方式==
- ==案例一==
- ==案例一的效果==
- ==3.Label裏放圖片==
- ==案例二==
- ==案例二的效果==
- ==案例三==
- ==案例三的效果==
- ==4.Label可變的文字內容==
- ==案例四==
- ==案例四的效果==
- ==4.文字所在標簽框的方位==
- ==案例五==
- ==案例五的效果==
- ==5.邊框樣式與寬度==
- ==案例六==
- ==案例六的效果==
目錄
前言
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()
==案例一的效果==
==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()
==案例六的效果==
作者:Mark
日期:2019/01/31 周四
tkinter學習系列(三)之Label控件