溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

對(duì)Python中TKinter模塊中的Label組件實(shí)例詳解

發(fā)布時(shí)間:2020-09-09 16:42:31 來(lái)源:腳本之家 閱讀:180 作者:目標(biāo)120 欄目:開(kāi)發(fā)技術(shù)

Python2.7.4 OS—W7x86

1. 簡(jiǎn)介

Label用于在指定的窗口中顯示文本和圖像。最終呈現(xiàn)出的Label是由背景和前景疊加構(gòu)成的內(nèi)容。

Label組件定義函數(shù):Label(master=None, cnf={}, **kw) 其中,kw參數(shù)是用來(lái)自定義lable組件的鍵值對(duì)。

2. 背景自定義

背景的話,有三部分構(gòu)成:內(nèi)容區(qū)+填充區(qū)+邊框

<1>內(nèi)容區(qū)參數(shù)有:width,length用于指定區(qū)域大小,如果顯示前景內(nèi)容是文本,則以單個(gè)字符大小為單位;如果顯示的是圖像,則以像素為單位。默認(rèn)值是根據(jù)具體顯示的內(nèi)容動(dòng)態(tài)調(diào)整。類型是int。

background用于指定背景的顏色,默認(rèn)值根據(jù)系統(tǒng)而定。

<2>填充區(qū)參數(shù):指的是內(nèi)容區(qū)和邊框之間的間隔大小,單位是像素。參數(shù)有:padx , pady,類型是int。

<3>邊框參數(shù):樣式relief(可選值為:flat(默認(rèn)),sunken,raised,groove,ridge),borderwidth(邊框的寬度,單位是像素,默認(rèn)根據(jù)系統(tǒng)而定,一般是1或2像素)

highlightbackground,highlightcolor,highlightthickness 三個(gè)邊框參數(shù)僅在Label允許接收焦點(diǎn)的情況下(tackfocus=True),用于設(shè)置焦點(diǎn)獲取前后高亮邊框顏色以及高亮邊框?qū)挾取?/p>

舉個(gè)栗子(@-@)

對(duì)Python中TKinter模塊中的Label組件實(shí)例詳解

上圖右側(cè)為,背景圖構(gòu)成:內(nèi)容區(qū)(黑色),填充區(qū)(綠色),邊框(黃色)

定義的背景內(nèi)容區(qū)是可容納3X9的字符區(qū),如上圖中的右側(cè)小窗口中的Label。增加了填充區(qū)和邊框后的效果如上圖中左側(cè)的Label。

3. 前景自定義

前景定義分為文本內(nèi)容和圖像兩小塊來(lái)說(shuō)明。

3.1 文本

文本內(nèi)容選項(xiàng)有:<1>指定字體和字體大小,如:font = (font_name,size),默認(rèn)有系統(tǒng)指定。

<2>文本對(duì)齊方式,justify = "center(默認(rèn))left/right/"

<3>指定文本(或圖像)顏色,foreground = "指定的顏色",可以是英文名字,也可以是RGB格式的

<4>指定文本內(nèi)容:(靜態(tài)的)text = "目標(biāo)字符串....."; (動(dòng)態(tài)更新的)textvariable = str_obj,當(dāng)str_obg的內(nèi)容改變時(shí),會(huì)更新Label中對(duì)應(yīng)內(nèi)容。

這里需要注意的是str_obj必須是TKinter所支持的字符串類型變量,如:str_obj = Tkinter.StringVar() str_obj.set("目標(biāo)文本內(nèi)容")

<5>單個(gè)字符添加下劃線,underline = index, index是目標(biāo)字符串中的字符索引值。

<6>文本或圖像在背景內(nèi)容區(qū)的位置:anchor 可選值為(n,s,w,e,ne,nw,sw,se,center)eswn是東南西北英文的首字母,表示:上北下南左西右東

對(duì)Python中TKinter模塊中的Label組件實(shí)例詳解

圖像內(nèi)容選項(xiàng)有:<1>指定圖片:bitmap = bitmap_image,當(dāng)指定image選項(xiàng)的時(shí)候,這個(gè)參數(shù)會(huì)被忽略掉 或者 image = normal_image(僅支持GIF, PPM/PGM格式的圖片)" 。

需要注意的是這里的所用到的圖片對(duì)象bitmap_image normal_image都是需要經(jīng)過(guò)TKinter轉(zhuǎn)換后的圖像格式。

如: bitmap_image = TKinter.BitmapImage(file = "位圖片路徑")

normal_image = TKinter.PhotoImage(file = "gif 、ppm/pgm圖片路徑")

圖片和文本取舍:compound參數(shù)可以控制要顯示的文本和圖像。當(dāng)同時(shí)指明了要顯示的文本和圖像時(shí),可以通過(guò)該參數(shù)來(lái)進(jìn)行不同設(shè)置。

可選值:None 默認(rèn)值,表示只顯示圖像,不顯示文本;bottom/top/left/right,表示圖片顯示在文本的下/上/左/右;center,表示文本顯示在圖片中心上方。

對(duì)Python中TKinter模塊中的Label組件實(shí)例詳解

上圖左中的compound="bottom",表示圖片顯示在文字下方;上圖左中的compound="center",表示文字顯示在圖片中間上方

4. Label的其他參數(shù)

<1>activebacakground activeforground 用于設(shè)置Label處于活動(dòng)(active)狀態(tài)下的背景和前景顏色,默認(rèn)由系統(tǒng)指定。

<2>diableforground 指定當(dāng)Label不可用的狀態(tài)(Disable)下的前景顏色,默認(rèn)由系統(tǒng)指定。

<3>cursor 指定鼠標(biāo)經(jīng)過(guò)Label的時(shí)候,鼠標(biāo)的樣式,默認(rèn)由系統(tǒng)指定。

<4>state 指定Label的狀態(tài),用于控制Label如何顯示??蛇x值有:normal(默認(rèn))/active/disable。

程序源碼

#coding=utf-8
import Tkinter as tk
 
if __name__ == "__main__":
  import Tkinter as tk
  master = tk.Tk()
  str_obj = tk.StringVar()
  str_obj.set("這是TKinter所支持的字符串類型")
 
  #bitmap_image = tk.BitmapImage(file = "./tmp/11.bmp")
  normal_image = tk.PhotoImage(file = "./tmp/11.gif")
  print type(normal_image)
  print normal_image
  w = tk.Label(master,
         #背景選項(xiàng)
         #height = 5,
         #width = 20,
         padx=10,
         pady=20,
         background="blue",
         relief="ridge",
         borderwidth=10,
         #文本
         text = "123456789\nabcde\nABCDEFG",
         #textvariable = str_obj,
         justify = "left",
         foreground = "white",
         underline = 4,
         anchor = "ne",
         #圖像
         image = normal_image,
         compound = "bottom",
         #接受焦點(diǎn)
         #takefocus = True,
         #highlightbackground = "yellow",
         #highlightcolor = "white",
         #highlightthickness = 5
         )
  w.pack()
  master.mainloop()

以上這篇對(duì)Python中TKinter模塊中的Label組件實(shí)例詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持億速云。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI