Python Tkinter Label 使用步驟示例詳解
前言
Tkinter 的 Label 是用于顯示文本、圖像或同時(shí)顯示圖文的基礎(chǔ)組件,不可直接編輯,常用來展示提示信息、標(biāo)題、靜態(tài)內(nèi)容等,是 GUI 界面中最常用的組件之一。
一、核心使用步驟(基礎(chǔ)示例)
使用 Label 需遵循導(dǎo)入模塊→創(chuàng)建主窗口→實(shí)例化 Label→布局顯示的核心流程
# 1. 導(dǎo)入tkinter模塊(Python3 統(tǒng)一為tkinter,Python2為Tkinter)
import tkinter as tk
# 2. 創(chuàng)建主窗口對象(GUI程序的根容器)
root = tk.Tk()
root.title("Label基礎(chǔ)使用") # 設(shè)置窗口標(biāo)題
root.geometry("300x200") # 設(shè)置窗口大小:寬x高(像素)
# 3. 實(shí)例化Label組件,綁定到主窗口
# 最基礎(chǔ)用法:指定父容器(master)和顯示文本(text)
label = tk.Label(
master=root, # 必選:指定Label所屬的父容器(此處為主窗口root)
text="Hello Tkinter Label!" # 核心參數(shù):要顯示的文本
)
# 4. 布局顯示Label(關(guān)鍵:tkinter組件必須通過布局管理器顯示,否則不可見)
label.pack() # 簡單布局,自動居中適配
# 5. 啟動主事件循環(huán)(讓窗口保持運(yùn)行,等待用戶操作)
root.mainloop()二、Label 核心常用參數(shù)
| 參數(shù) | 作用 | 示例 |
|---|---|---|
| master | 必選,指定父容器(窗口 / 框架 Frame 等) | master=root |
| text | 顯示的文本內(nèi)容,支持\n換行 | text=“第一行\(zhòng)n第二行文本” |
| font | 字體配置,格式(字體名, 字號, 樣式),樣式可選bold(粗體)/italic(斜體) | font=(“微軟雅黑”, 12, “bold”) |
| fg | 前景色(文本顏色),支持英文色名 / 十六進(jìn)制 | fg=“red” 或 fg=“#FF0000” |
| bg | 背景色(Label 組件的底色) | bg=“lightgray” 或 bg=“#F5F5F5” |
| width | 組件寬度,文本組件按字符數(shù)計(jì)算,圖像組件按像素 | width=20(顯示 20 個(gè)字符寬度) |
| height | 組件高度,文本組件按字符行數(shù)計(jì)算,圖像組件按像素 | height=3(顯示 3 行字符高度) |
| anchor | 內(nèi)容對齊方式,基于方位詞:N (上)、S (下)、E (右)、W (左)、CENTER (中),可組合(如 NE = 右上) | anchor=“w”(左對齊) |
| padx/pady | 組件內(nèi)邊距,x/y 方向的空白區(qū)域(像素),避免內(nèi)容貼邊 | padx=10, pady=5 |
| image | 顯示的圖像,需配合PhotoImage加載(支持 png/gif,不直接支持 jpg,需額外處理) | 顯示圖像」示例 |
| compound | 圖文混排時(shí)的位置,可選:left/right/top/bottom/center(圖像在文本的對應(yīng)方位) | compound=“left”(圖像在左,文本在右) |
三、tkinter 三種布局管理器(Label 顯示必備)
tkinter 組件(包括 Label)必須通過布局管理器添加到父容器,否則不會顯示,核心有 3 種布局,各有適用場景:
- pack ():簡單快速,自動適配
適用場景:快速布局、組件上下 / 左右排列,無需精確控制位置
# 兩個(gè)Label上下排列,左對齊 label1 = tk.Label(root, text="第一個(gè)Label", fg="blue") label2 = tk.Label(root, text="第二個(gè)Label", fg="green") label1.pack(anchor="w", padx=10, pady=5) # 左對齊,x/y內(nèi)邊距 label2.pack(anchor="w", padx=10)
- grid ():網(wǎng)格布局,精確行列控制
適用場景:需要按「行 + 列」精確排列組件(如表單、數(shù)據(jù)展示),支持跨行 / 跨列。
核心參數(shù):row(行號,從 0 開始)、column(列號,從 0 開始)、rowspan(跨行數(shù))、columnspan(跨列數(shù))。
# 3行2列的Label網(wǎng)格,帶內(nèi)邊距 tk.Label(root, text="行0列0", bg="pink").grid(row=0, column=0, padx=5, pady=5) tk.Label(root, text="行0列1", bg="pink").grid(row=0, column=1, padx=5, pady=5) tk.Label(root, text="行1列0(跨2列)", bg="lightblue").grid(row=1, column=0, columnspan=2, padx=5, pady=5) tk.Label(root, text="行2列0", bg="lightgreen").grid(row=2, column=0, padx=5, pady=5) tk.Label(root, text="行2列1", bg="lightgreen").grid(row=2, column=1, padx=5, pady=5)
- place ():絕對定位,精確坐標(biāo)控制
適用場景:需要按「像素坐標(biāo)」精確控制組件位置,適合定制化界面(缺點(diǎn):窗口縮放時(shí)組件位置不會自動適配)。
核心參數(shù):x(距父容器左邊界的像素)、y(距父容器上邊界的像素)、relx/rely(相對坐標(biāo),0~1,基于父容器大?。?。
# 絕對坐標(biāo):x=50,y=30;相對坐標(biāo):relx=0.5(水平居中),rely=0.6(垂直60%位置) label1 = tk.Label(root, text="絕對定位(50,30)", bg="yellow") label2 = tk.Label(root, text="相對定位(居中)", bg="orange") label1.place(x=50, y=30) # 絕對坐標(biāo) label2.place(relx=0.5, rely=0.6, anchor="center") # 相對坐標(biāo)+居中對齊
四、進(jìn)階用法:顯示圖像 / 圖文混排
- 僅顯示圖像(支持 png/gif)
tkinter 內(nèi)置 PhotoImage 用于加載圖像,注意:變量需保持引用(不可匿名),否則圖像會被垃圾回收導(dǎo)致不顯示:
import tkinter as tk
root = tk.Tk()
root.title("Label顯示圖像")
# 加載圖像(支持png/gif,路徑可為絕對路徑/相對路徑)
# 關(guān)鍵:img變量必須保留,不能寫成 tk.PhotoImage(file="logo.png")
img = tk.PhotoImage(file="logo.png") # 替換為你的圖像路徑
# 實(shí)例化Label,指定image參數(shù)
img_label = tk.Label(root, image=img, width=100, height=100)
img_label.pack(pady=20)
root.mainloop()- 圖文混排(圖像 + 文本)
通過 compound 參數(shù)控制圖像和文本的相對位置,結(jié)合 text 和 image 參數(shù)實(shí)現(xiàn):
import tkinter as tk
root = tk.Tk()
root.title("Label圖文混排")
# 加載圖像
img = tk.PhotoImage(file="icon.png")
# 圖文混排:圖像在左,文本在右,字體加粗,帶內(nèi)邊距
mix_label = tk.Label(
root,
image=img,
text="Python Tkinter\n圖文混排示例",
font=("宋體", 11, "bold"),
compound="left", # 圖像在左,可選:right/top/bottom/center
padx=10,
pady=8,
fg="#333333"
)
mix_label.pack()
root.mainloop()到此這篇關(guān)于Python Tkinter Label 使用的文章就介紹到這了,更多相關(guān)Python Tkinter Label 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python連接MySQL數(shù)據(jù)庫實(shí)例分析
這篇文章主要介紹了python連接MySQL數(shù)據(jù)庫,實(shí)例分析了Python操作MySQL的相關(guān)技巧,需要的朋友可以參考下2015-05-05
python區(qū)塊鏈持久化和命令行接口實(shí)現(xiàn)簡版
這篇文章主要為大家介紹了python區(qū)塊鏈持久化和命令行接口實(shí)現(xiàn)簡版,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
在keras中實(shí)現(xiàn)查看其訓(xùn)練loss值
這篇文章主要介紹了在keras中實(shí)現(xiàn)查看其訓(xùn)練loss值,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
python實(shí)現(xiàn)通訊錄系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)通訊錄系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
Pytorch 數(shù)據(jù)加載與數(shù)據(jù)預(yù)處理方式
今天小編就為大家分享一篇Pytorch 數(shù)據(jù)加載與數(shù)據(jù)預(yù)處理方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
pymongo實(shí)現(xiàn)多結(jié)果進(jìn)行多列排序的方法
這篇文章主要介紹了pymongo實(shí)現(xiàn)多結(jié)果進(jìn)行多列排序的方法,涉及Python排序的相關(guān)技巧,需要的朋友可以參考下2015-05-05
基于Python實(shí)現(xiàn)商場抽獎小系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了如何利用Python語言實(shí)現(xiàn)一個(gè)簡單的商場抽獎小系統(tǒng),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-08-08

