第2章 标签Label
2-1 标签Label的基本应用
Label( )方法可以用于在窗口内建立文字或图像标签,有关图像标签的内容将在2-8节、2-9节与2-12节讨论,它的语法格式如下。
Label( )方法的第一个参数是父对象,表示这个标签将建立在哪一个父对象(可想成父窗口或称容器)内。下列是Label( )方法内其他常用的options参数。
(1)anchor:如果空间大于所需时,控制标签的位置,默认是CENTER(居中),更多设定可参考2-4节。
(2)bg或background:背景色彩。
(3)bitmap:使用默认图标当作标签内容。
(4)borderwidth或bd:标签边界宽度,默认是1。
(5)compound:可以设置标签内含图像和文字时,彼此的位置关系。
(6)cursor:当鼠标光标在标签上方时的外形。
(7)fg或foreground:前景色彩。
(8)font:可选择字形、字形样式与大小。
(9)height:标签高度,单位是字符。
(10)image:标签以图像方式呈现。
(11)justify:存在多行文本时最后一行的对齐方式,可取值有LEFT/CENTER/RIGHT(靠左/居中/靠右),默认是居中对齐。
(12)padx/pady:标签文字与标签区间的间距,单位是像素。
(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_1.py。
至于以后的程序设计,笔者建议将对象声明与pack方法分开,或是如果不会使用此对象做更进一步操作时才使用这种声明与pack一起的方式,如此不容易出现错误。