官术网_书友最值得收藏!

第2章 標簽Label

2-1 標簽Label的基本應用

Label( )方法可以用于在窗口內創建文字圖像標簽,有關圖像標簽的內容將在2-8節、2-9節與2-12節討論,它的語法格式如下。

    Label(父對象,options, … )

Label( )方法的第一個參數是父對象,表示這個標簽將創建在哪一個父對象(可想成父窗口或稱容器)內。下列是Label( )方法內其他常用的options參數。

(1)anchor:如果空間大于所需時,控制標簽的位置,默認是CENTER(居中),更多設定可參考2-4節。

(2)bgbackground:背景色彩。

(3)bitmap:使用默認圖標當作標簽內容。

(4)borderwidthbd:標簽邊界寬度,默認是1。

(5)compound:可以設置標簽內含圖像和文字時,彼此的位置關系。

(6)cursor:當光標在標簽上方時的外形。

(7)fgfroeground:前景色。

(8)font:可選擇字形、字形樣式與大小。(9) height:標簽高度,單位是字符(10) image:標簽以圖像方式呈現。

(11)justify:存在多行文本時最后一行的對齊方式,取值有LEFT/CENTER/RIGHT(靠左/ 居中/靠右),默認是居中對齊。

(12)padx/pady:標簽文字與標簽區間的間距,單位是px。

(13)relief:默認是relief=FLAT,可由此控制標簽的外框。

(14)text:標簽內容,如果有“\n”則可輸入多行文字。

(15)textvariable:可以設置標簽以變量方式顯示。

(16)underline:可以設置第幾個文字有下畫線,從0開始算起,默認是-1,表示無下畫線。

(17)width:標簽寬度,單位是字符

(18)wraplength:文本到多少寬度后換行,單位是字符

在設計程序時,也可以將上述參數設置稱為屬性設置。

程序實例ch2_1.py:創建一個標簽,內容是“I like tkinter”,同時在Python Shell窗口中列出Label的數據類型。

執行結果 下方右圖是鼠標拖曳增加窗口寬度的結果,可以看到完整的窗口標題。

上述左邊窗口的大小是默認大小,很明顯窗口高度會比沒有控件時更小,因為tkinter只會安排足夠的空間顯示控件。上述第7行的pack( )方法主要是包裝窗口的Widget控件和定位窗口的對象,所以可以在執行結果的窗口內見到上述Widget控件。此例中Widget控件是標簽,第3章將針對pack相關知識做完整說明。另外,在Python Shell窗口中可以看到label數據類型的結果是tkinter.Label數據類型。

上述知識很重要,因為以后如果設計復雜的GUI程序,需要隨時使用Widget控件的對象做更進一步的操作,此時需要使用此對象。

如果在網絡上或是以后看到其他人設計的GUI程序,對于上述第6行和第7行,會經常看到可以組合成一行,可參考下列程序實例。

程序實例ch2_2.py:使用Label( ).pack( )方式重新設計程序實例ch2_1.py。

執行結果 GUI窗口的結果與程序實例ch2_1.py相同。

但是這時Python Shell窗口中所傳回的label數據類型如下。

很明顯不是tkinter.Label類型。如果這時需要用此對象進一步操作Widget控件就會發生錯誤,這是讀者需要特別留意的。

上述程序中第6行有“label=”,因為它的數據類型已經不對了,也可以省略此設置,可參考本書配套程序實例中的ch2_2.py。

至于以后的程序設計,建議將對象聲明與pack方法分開,或是如果不會使用此對象做更進一步操作時才使用這種聲明與pack一起的方式,如此不容易出現錯誤。

主站蜘蛛池模板: 五莲县| 温泉县| 遂宁市| 九龙城区| 美姑县| 阜阳市| 开阳县| 沁阳市| 绥芬河市| 房产| 开阳县| 吉林市| 宜兰县| 吉林市| 萍乡市| 手游| 盘锦市| 维西| 鄂州市| 闸北区| 双峰县| 景洪市| 乌鲁木齐市| 习水县| 常山县| 景洪市| 柯坪县| 信阳市| 叶城县| 依安县| 贺兰县| 八宿县| 洪雅县| 镇坪县| 神木县| 寻乌县| 辽阳市| 亳州市| 得荣县| 锦州市| 班玛县|