這一章開(kāi)始對(duì)tkinter的各個(gè)組件進(jìn)行學(xué)習(xí)垫言,之前第一篇中列出了tkinter的組件。
一、Label組件的簡(jiǎn)介
Lable就是平時(shí)說(shuō)的標(biāo)簽巍举,實(shí)際上它既可以是文本標(biāo)簽,還可以是圖標(biāo)凝垛。
Label的參數(shù)
還是使用help
查看一下(內(nèi)容非常的多懊悯,有好幾頁(yè),這里只選取部分展示):
Label(master=None, cnf={}, **kw)
|
| Label widget which can display text and bitmaps.
| # 標(biāo)簽小部件梦皮,可以顯示文本和位圖炭分。
| __init__(self, master=None, cnf={}, **kw)
| Construct a label widget with the parent MASTER.
|
| STANDARD OPTIONS
| # 標(biāo)準(zhǔn)選項(xiàng)
| activebackground, activeforeground, anchor,
| background, bitmap, borderwidth, cursor,
| disabledforeground, font, foreground,
| highlightbackground, highlightcolor,
| highlightthickness, image, justify,
| padx, pady, relief, takefocus, text,
| textvariable, underline, wraplength
|
| WIDGET-SPECIFIC OPTIONS
| # 特定選項(xiàng)
| height, state, width
可以看到,Label有很多的參數(shù)剑肯,但是大部分都是通用的參數(shù)捧毛。
之前的栗子里面已經(jīng)看過(guò)了Label的構(gòu)建,這里不再做這個(gè)演示让网。
二呀忧、組件的通用屬性介紹
在前面的篇幅已經(jīng)列出來(lái)過(guò)組件的通用屬性,這里結(jié)合Label進(jìn)行進(jìn)一步的介紹溃睹。
1.顏色:fg和bg
fg或foreground:可以設(shè)置前景色彩而账,在此相當(dāng)于是標(biāo)簽的顏色。
bg或background:可以設(shè)置背景色彩丸凭。
from tkinter import *
root = Tk()
lab1 = Label(root,text="第一個(gè)標(biāo)簽",bg="red")
lab2 = Label(root,text="第二二個(gè)標(biāo)簽",bg="yellow")
lab1.pack()
lab2.pack()
root.mainloop()
2.尺寸:height和width
height可以設(shè)置Widget控件的高度福扬,單位是字符高度腕铸。
width可以設(shè)置Widget控件的寬度,單位是字符寬度铛碑。
lab1 = Label(root,text="第一個(gè)標(biāo)簽",bg="red",height=3,width=20)
lab2 = Label(root,text="第二二個(gè)標(biāo)",bg="yellow",height=5,width=10)
3.Anchor
前面介紹過(guò)狠裹,不再進(jìn)行講解。
相對(duì)的位置如下圖:
4.wraplength
可以設(shè)置每行顯示的最大字符數(shù)汽烦。
lab1 = Label(root,text="第一個(gè)標(biāo)簽",bg="red",height=3,width=20,wraplength=40)
lab2 = Label(root,text="第二二個(gè)標(biāo)簽",bg="yellow",height=5,width=10,wraplength=10)
5.font
指定組件上顯示的文本字體涛菠。
這里有很多選項(xiàng):
屬性 | 參數(shù) |
---|---|
family | 字形。如Helvetica撇吞、Times等俗冻,可以進(jìn)入Word內(nèi)參考所有系統(tǒng)字形 |
size | 字號(hào)。單位是像素 |
weight | 例如bold牍颈、normal |
slant | 例如italic迄薄、roman,如果不是italic則是roman |
underline | 下劃線煮岁。例如True讥蔽、False |
overstrike | 刪除線。例如True画机、False |
通常將上面的參數(shù)用空格分開(kāi)冶伞,組成一個(gè)字符串傳給font。
lab1 = Label(root,text="第一個(gè)標(biāo)簽",bg="red",font="Times 20 bold")
6.justify
指定組件內(nèi)部?jī)?nèi)容的對(duì)齊方式步氏,支持LEFT,RIGHT,CENTER這三個(gè)值响禽。
左對(duì)齊
lab1 = Label(root,text="1234567890",bg="red",wraplength=30,justify=LEFT)
右對(duì)齊
lab1 = Label(root,text="1234567890",bg="red",wraplength=30,justify=RIGHT)
居中對(duì)齊
lab1 = Label(root,text="1234567890",bg="red",wraplength=30,justify=CENTER)
7.Bitmaps
指定在組件上顯示該選項(xiàng)指定的位圖。
該選項(xiàng)可以是Tk_GetBitmap接收的任何形式的位圖荚醒。
有3點(diǎn)需要注意:
- 位圖的顯示方式受anchor和justify的影響芋类;
- 如果同時(shí)指定了Bitmap和text,那么bitmap覆蓋文本腌且;
-
如果同時(shí)指定了Bitmap和image梗肝,那么image覆蓋bitmap。
下面是tkinter提供的在標(biāo)簽位置放置內(nèi)建位圖:
下面是一個(gè)小栗子:
lab1 = Label(root,text="1234567890",bitmap="warning")
注意到铺董,text的文本被圖像覆蓋掉了。
8.compound
當(dāng)需要圖像與文字共存時(shí)禀晓,可以使用此參數(shù)定義文字與圖像的位置關(guān)系精续。
compound參數(shù)可以是下列值。
- left:圖像在左粹懒。
- right:圖像在右重付。
- top:圖像在上。
- bottom:圖像在下凫乖。
- center:文字覆蓋在圖像上方确垫。
示例:
lab1 = Label(root,text="1234567890",bitmap="warning",compound=LEFT)
9.relief
指定組件的3D效果弓颈,該選項(xiàng)包括的值有:
relief可選的值 | 效果 |
---|---|
FLAT | 平坦的 |
RAISED | 凸起的 |
SUNKEN | 內(nèi)凹的 |
RIDGE | 鑲嵌的 |
SOLID | 實(shí)心的 |
GROOVE | 開(kāi)槽的 |
可以自己試試,大致效果如下:
10.image
指定組件中顯示的圖像删掀。
通诚杓剑可以先設(shè)置PhotoImage圖像對(duì)象,再將此圖像對(duì)象應(yīng)用作為參數(shù)傳給image披泪。
pictest = PhotoImage(file = "C:\\Users\\Desktop\\1.png")
lab1 = Label(root,text="1234567890",image=pictest)
注意到纤子,image將text覆蓋了。
如果不想被覆蓋款票,可以使用compound控硼。
11.config
用于更改組件的屬性。
在建立時(shí)沒(méi)有直接設(shè)置的屬性艾少,可以再后面更改使用config( )方法屬性卡乾,實(shí)現(xiàn)了組件屬性的動(dòng)態(tài)修改。
12.cursor
指定鼠標(biāo)光標(biāo)在組件上的樣式缚够。
其值可以是Tk_GetCursor()接收的任何格式说订。
13.keys()
對(duì)任意組件使用keys()可以得到該組件可用的參數(shù)的列表(List)。
>>> from tkinter import *
>>> root = Tk()
>>> lab1=Label(root,text="123")
>>> print(lab1.keys())
['activebackground', 'activeforeground', 'anchor', 'background', 'bd', 'bg', 'bitmap', 'borderwidth',
'compound', 'cursor', 'disabledforeground', 'fg', 'font', 'foreground', 'height', 'highlightbackground',
'highlightcolor', 'highlightthickness', 'image', 'justify', 'padx', 'pady', 'relief', 'state', 'takefocus', 'text',
'textvariable', 'underline', 'width', 'wraplength']
14.Separator
分隔線潮瓶,tkinter.ttk中有Separator模塊陶冷。
lab1 = Label(root,text="1234567890")
lab2 = Label(root,text="第二二個(gè)標(biāo)簽")
sep1 = Separator(root,orient=HORIZONTAL)
lab1.pack()
sep1.pack(fill=X)
lab2.pack()