- Python GUI設計tkinter菜鳥編程(增強版)
- 洪錦魁編著
- 1126字
- 2024-12-31 19:23:48
第2章 標簽Label
2-1 標簽Label的基本應用
Label( )方法可以用于在窗口內創建文字或圖像標簽,有關圖像標簽的內容將在2-8節、2-9節與2-12節討論,它的語法格式如下。
Label(父對象,options, … )
Label( )方法的第一個參數是父對象,表示這個標簽將創建在哪一個父對象(可想成父窗口或稱容器)內。下列是Label( )方法內其他常用的options參數。
(1)anchor:如果空間大于所需時,控制標簽的位置,默認是CENTER(居中),更多設定可參考2-4節。
(2)bg或background:背景色彩。
(3)bitmap:使用默認圖標當作標簽內容。
(4)borderwidth或bd:標簽邊界寬度,默認是1。
(5)compound:可以設置標簽內含圖像和文字時,彼此的位置關系。
(6)cursor:當光標在標簽上方時的外形。
(7)fg或froeground:前景色。
(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一起的方式,如此不容易出現錯誤。
- 程序設計與實踐(VB.NET)
- Python Tools for Visual Studio
- The React Workshop
- 深入淺出DPDK
- WordPress Plugin Development Cookbook(Second Edition)
- 網絡爬蟲原理與實踐:基于C#語言
- Mastering KnockoutJS
- HTML5從入門到精通 (第2版)
- MySQL 8從零開始學(視頻教學版)
- 零基礎學C++(升級版)
- AutoCAD基礎教程
- Laravel Design Patterns and Best Practices
- MongoDB Administrator’s Guide
- Dart:Scalable Application Development
- MATLAB/Simulink建模與仿真