Python中TKinter模塊中的Label組件


Python2.7.4      OS—W7x86
1. 簡介

  Label用於在指定的窗口中顯示文本和圖像。最終呈現出的Label是由背景和前景疊加構成的內容。

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

2.  背景自定義

  背景的話,有三部分構成:內容區+填充區+邊框

  <1>內容區參數有:width,length用於指定區域大小,如果顯示前景內容是文本,則以單個字符大小為單位;如果顯示的是圖像,則以像素為單位。默認值是根據具體顯示的內容動態調整。類型是int。

                  background用於指定背景的顏色,默認值根據系統而定。

  <2>填充區參數:指的是內容區和邊框之間的間隔大小,單位是像素。參數有:padx , pady,類型是int。

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

                             highlightbackground,highlightcolor,highlightthickness 三個邊框參數僅在Label允許接收焦點的情況下(tackfocus=True),用於設置焦點獲取前后高亮邊框顏色以及高亮邊框寬度。

  舉個栗子(@-@)

   

  上圖右側為,背景圖構成:內容區(黑色),填充區(綠色),邊框(黃色)

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

3.  前景自定義

  前景定義分為文本內容圖像兩小塊來說明。

3.1 文本

  文本內容選項有:<1>指定字體和字體大小,如:font = (font_name,size),默認有系統指定。

                               <2>文本對齊方式justify = "center(默認)left/right/"

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

                               <4>指定文本內容:(靜態的)text = "目標字符串.....";  (動態更新的)textvariable = str_obj,當str_obg的內容改變時,會更新Label中對應內容。

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

                               <5>單個字符添加下划線underline = index, index是目標字符串中的字符索引值。

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

                                

  圖像內容選項有:<1>指定圖片:bitmap = bitmap_image,當指定image選項的時候,這個參數會被忽略掉     或者  image = normal_image(僅支持GIF, PPM/PGM格式的圖片)" 。

                                       需要注意的是這里的所用到的圖片對象bitmap_image  normal_image都是需要經過TKinter轉換后的圖像格式。

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

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

  圖片和文本取舍:compound參數可以控制要顯示的文本和圖像。當同時指明了要顯示的文本和圖像時,可以通過該參數來進行不同設置。

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

                                

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

 4. Label的其他參數

  <1>activebacakground  activeforground   用於設置Label處於活動(active)狀態下的背景和前景顏色,默認由系統指定。

  <2>diableforground  指定當Label不可用的狀態(Disable)下的前景顏色,默認由系統指定。

  <3>cursor 指定鼠標經過Label的時候,鼠標的樣式,默認由系統指定。

  <4>state  指定Label的狀態,用於控制Label如何顯示。可選值有:normal(默認)/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,
                 #背景選項
                 #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",
                 #接受焦點
                 #takefocus = True,
                 #highlightbackground = "yellow",
                 #highlightcolor = "white",
                 #highlightthickness = 5
                 )
    w.pack()
    master.mainloop()

 

參考來源:http://bbs.fishc.com/forum.php?mod=viewthread&tid=59087&extra=page%3D1%26filter%3Dtypeid%26typeid%3D604

 

 

 

 

 

 

      


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM