首頁 > 軟體

python圖形化使用者介面tkinter之標籤Label的使用說明

2022-06-20 22:00:17

圖形化使用者介面tkinter之標籤Label使用

匯入tkinter模組

from tkinter import *

構建視窗物件

root = Tk()

視窗屬性設定

#視窗標題
root.title('視窗標題')
#視窗大小
root.geometry('200x300')
#設定視窗背景顏色
root.configure(bg = "blue")
#更改視窗圖示
root.iconbitmap('icon檔案路徑')
#讓程式持續執行
root.mainloop()

結果圖示

Mark:一般給視窗設定標題、背景顏色、大小、圖示應該就夠用了。需要注意的是設定視窗大小的函數geometry的引數單位是畫素,所呈現的效果就是執行程式出現時的視窗大小。設定背景顏色的函數configure的引數是鍵值的形式。另外還可以限制視窗大小,比如限定視窗最大化、最小化:maxsize、minsize。執行程式時,呈現的視窗最大化、最小化:state、iconify。還可以更改視窗的預設圖示:iconbitmap。

標籤label

標籤裡面可以放置文字和圖片。

文字標籤

Label(root,text='Hello tkinter',
	  fg='white',bg='red',
	  height=1,width=15,anchor='nw').pack()

結果圖示

如果文字內容比較長

比如text=‘I will white a text, in which there are many words,and the method of the condition will be given’

Label(root,
      text='I will white a text, in which there are many words,and the method of the condition will be given',
          fg='white',bg='red',
           height=8,width=15,anchor='nw',
        wraplength=100,justify='left').pack()

結果圖示

Mark:當我們在標籤中放置文字時,為了讓文字在適當的位置,正常的顯示,需要用到label的一些屬性。比如設定label標籤的高度、寬度、背景顏色:height、weight、bg。設定字型的顏色、大小:fg、font。文字在label標籤中的位置:anchor。文字中內容的對齊方式:justify。如果文字內容過長,可以調節height、width、wraplength。其中wraplenght表示的是多少畫素單位後換行。當標籤中放置的是文字,height、width指的是多少字元單位。

補充:涉及到單位的有geometry、height、width、wraplenght。geometry用於設定視窗大小,是畫素單位。wraplength指的是一段文字多長開始換行,指的是畫素單位。而height、width在標籤label中放置文字時,指的是字元單位,用於設定label標籤的大小,方便展示出文字內容。

圖片標籤

python內建圖片( bitmap屬性)

Label(root,bitmap='error').pack()

結果圖示

error可以換為hourglass、info、questhead等等

image屬性顯示圖片

建立image物件

im = PhotoImage(file = r'C:UsersAdministratorDesktop動物.png')

建立label物件

Label(root,image = im).pack()

結果圖示

Mark:在標籤label中,使用python內建的圖片,需要使用屬性bitmap,bitmap的值可以查詢相關檔案。如果想放置自己的照片,需要使用image屬性,image的值是一個image物件。用類PhotoImage將對應的圖片轉化為image物件使用。

supplement

文字圖片的組合 屬性compound

xtext='中國風'
im = PhotoImage(file = r'C:UsersAdministratorDesktop喜鵲桃花摺扇.png')
Label(root,text=xtext,fg='red',font=('楷體',40),
      image = im,compound='center').pack()

結果圖示

Mark:在標籤label中同時放入文字和圖片,要使用label的compound屬性。

使用tkinter解決的一些小問題

Label的weight引數

之前做的一個專案中也是用label顯示圖片,height引數可以使用

tk.Label(self.root, image=self.p[i] ,width = 200,height = 200 ).place(x =x0-20,y=y0+50)

但是最近做的這個卻提示沒有這個引數,所以就無法更改顯示的圖片大小,找了很長時間沒有解決,最後通過別的庫將圖片改變大小,然後再顯示回來,至於最終要使用哪個圖片傳給別的函數可以自己選擇

def photo_show(p):
    # 待處理圖片儲存路徑
    im = Image.open(p)
    # Resize圖片大小,入口引數為一個tuple,新的圖片大小
    imBackground = im.resize((200, 200))
    # 處理後的圖片的儲存路徑,以及儲存格式
    imBackground.save('show.png')

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com