我們知道,東西的標籤是不能亂貼的,比如一件商品,價格標錯了,可能會有損失哦。對於Python GUI編程中標籤的使用也不例外,Tkinter中的標籤控制項Label常常被使用於顯示文本或圖像,今天我們來詳細看下它的使用方法。
下面開始今天的內容……
【使用範圍】
顧名思義,標籤控制項Label是用來給控制項貼標籤用於展示信息的,當然,它就可以包含多行文本。
它的使用範圍,主要有以下幾種類型:
標識信息
這個很容易理解,比如,製作一個註冊界面,要輸入內容我們需要使用Entry或者Text等控制項獲取,但是,我們往往使用Label控制項放在這些控制項之前,標識我們需要在文本框內獲取哪些內容。相當於打了一個標籤……
圖片容器
我們知道,Label控制項的好處之一是簡單,相對於其它控制項,Label的優勢就在於此,使用Label充當一個圖片容器也是一個不錯的選擇。
充當其它控制項使用
比如,可以把它當作一個按鈕來使用,對於按鈕的relief屬性設置合理,其實它就是一個按鈕了,當我們定義好它的事件回調函數後,它的功能和按鈕無異。
說白了,tkinter只是個入門級的圖形界面庫,使用這個庫發散下我們的思維,鞏固下基礎知識也是個不錯的選擇,此文的目的在於此,並非止於將標籤變為圖片容器或者其他什麼控制項……只是給大家提供個思路……
其它幾種需要說明的特殊屬性情況
1.但是一個標籤只能使用一種字體。如果你想要使用不同的字體,請定義不同的標籤。
2.你可以允許控制項根據可用空間大小換行,也可以在字符串中加入換行符來控制換行。
【實例演示】
我們先來寫一首詩,然後在詩中配一張圖片,都用標籤進行展示。原始碼如下:
from tkinter import *
root = Tk()root.title('標籤控制項演示')root.geometry('800x600+100+100')peom = '白日依山盡\n黃河入海流\n欲窮千裡目\n更上一層樓'img = PhotoImage(file='1.png')l_img = Label(root, image=img)l_img.pack(side=RIGHT, expand=YES, fill=BOTH)l_txt = Label(l_img, text = peom, fg='red', bg='#FFC65A', font=('微軟雅黑', 18, 'bold'))l_txt.pack(pady=20)root.mainloop()
效果應該是這樣的。如下圖所示。
比較簡單,相信大家都能看懂,又沒有簡潔的辦法呢?將這些內容放在同一個標籤中?當然可以,看下面的代碼。
from tkinter import *
root = Tk()root.title('標籤控制項演示')root.geometry('800x600+100+100')peom = '白日依山盡\n黃河入海流\n欲窮千裡目\n更上一層樓'img = PhotoImage(file='1.png')l_txt_img = Label(root, text = peom, fg='red', image=img,font=('微軟雅黑', 18, 'bold'),# 文字覆蓋在圖像上 compound='center',# 文字居中 anchor='center', )l_txt_img.pack(expand=YES, fill=BOTH)root.mainloop()
將圖片文字結合到一起了,代碼更少,視覺效果比之前也好一點了!如下圖所示。
下面,我們給標籤來點動態內容如何。當滑鼠移過標籤時,標籤的文字內容隨之換成另一首詩。原始碼如下所示:
from tkinter import *
def changetxt(event):if l_txt_img['text'] == peom: l_txt_img.config({'text': peom2}) else: l_txt_img.config({'text': peom})root = Tk()root.title('標籤控制項演示')root.geometry('800x600+100+100')peom = '白日依山盡\n黃河入海流\n欲窮千裡目\n更上一層樓'peom2 = '單車欲問邊,屬國過居延。\n徵蓬出漢塞,歸雁入胡天。\n大漠孤煙直,長河落日圓。\n蕭關逢候騎,都護在燕然。'img = PhotoImage(file='1.png')l_txt_img = Label(root, text = peom, fg='red', image=img,font=('微軟雅黑', 18, 'bold'),# 文字覆蓋在圖像上 compound='center',# 文字居中 anchor='center', )l_txt_img.pack(expand=YES, fill=BOTH)
# 綁定滑鼠移動事件l_txt_img.bind('<Motion>', changetxt)
root.mainloop()
當滑鼠經過標籤時,文字就會在王維的《使至塞上》和王之渙的《登鸛雀樓》兩首詩之間轉變。大家可以試試效果。當然,我們也可以將標籤變成按鈕進行使用。也是通過綁定其事件函數的方式實現,原理基本相同,只是綁定的回調函數是『<Button-1>』、'<ButtonRelease-1>'等等類似這種滑鼠單擊或雙擊事件,就看自己的需求咯。廢話不多說,喜歡的朋友們可以試試文中的效果。
歡迎大家留言並且關注,後續會有精彩內容持續更新。
轉載請註明出處:(百家號:Python高手養成)。