標籤:python tkinter
在上一篇文章中已經用到了Label組件。
組件的使用步驟如下:
1.建立這個控制項
2.指定這個空間的master,即這個控制項屬於哪一個
3.告訴GM(geometry manager)有一個控制項產生了
1.text屬性使用方法
import tkinter top=tkinter.Tk() label=tkinter.Label(top,text="hello world") label.pack() tkinter.mainloop()
2.label內建位元影像bitmap的使用方法
import tkinter top = tkinter.Tk()label = tkinter.Label(top,bitmap = 'error') #上面的代碼使用了內建位元影像errorlabel.pack()top.mainloop()
3.改變控制項的前景色彩和背景色‘fg:前景色彩
bg:背景色
設定背景色的一個大的用處是:可以判斷控制項的大小(不同的控制項使用不同的顏色,後續內容可以使用此特性來調試container)
from tkinter import *root = Tk()#在建立Label時指定各自使用的顏色'''可以使用的顏色值:'''#使用顏色名稱Label(root,fg = 'red',bg = 'blue',text = 'Hello I am Tkinter').pack()#使用顏色值#RRGGBBLabel(root,fg = 'red',bg = '#FF00FF',text = 'Hello I am Tkinter').pack()#使用系統相關的顏色值(Windows),不建議使用這樣的值,不利於平台移植Label(root,fg = 'red',bg = 'SystemButtonShadow',text = 'Hello I am Tkinter').pack()root.mainloop()
4.設定寬度與高度
from tkinter import *root = Tk()#建立三個Label,分別顯示red,blue,yellow#注意三個Label的大小,它們均與文本的長度有關Label(root,text = 'red',bg = 'red').pack()Label(root,text = 'blue',bg = 'blue').pack()Label(root,text = 'yellow',bg = 'yellow').pack()#再建立三個Label,與上次不同的是這三個Label均使用width和heigth屬性#三個Label的大小由width和height指定Label(root,bg = 'red',width = 10,height = 3).pack()Label(root,bg = 'blue',width = 10,height = 3).pack()Label(root,bg = 'yellow',width = 10,height = 3).pack()root.mainloop()
5.同時使用映像與文本compound: 指定文本(text)與映像(bitmap/image)是如何在Label上顯示,預設為None,當指定image/bitmap時,文本(text)將被覆蓋,只顯示映像了。可以使用的值:
left: 映像居左
right: 映像居右
top: 映像居上
bottom:映像居下
center:文字覆蓋在映像上
bitmap/image:顯示在Label上的映像
text: 顯示在Label上的文本
label = Label(root,text = ‘Error‘,compound = ‘left‘,bitmap = ‘error‘)
from tkinter import *root = Tk()#示範compound的使用方法#映像與文本在Label中的位置#映像居下Label(root,text = 'botton',compound = 'bottom',bitmap = 'error').pack()#映像居上Label(root,text = 'top',compound = 'top',bitmap = 'error').pack()#映像居右Label(root,text = 'right',compound = 'right',bitmap = 'error').pack()#映像居左Label(root,text = 'left',compound = 'left',bitmap = 'error').pack()#文字覆蓋在映像上Label(root,text = 'center',compound = 'center',bitmap = 'error').pack()#訊息迴圈root.mainloop()
6.文本的多行顯示 在Tk004中,使用width和heigth來指定控制項的大小,如果指定的大小無法滿足文本的要求是,會出現什麼現象呢?如下代碼:
Label(root,bg = ‘welcome to jcodeer.cublog.cn‘,width = 10,height = 3).pack()
運行程式,超出Label的那部分文本被截斷了,常用的方法是:使用自動換行功能,及當文本長度大於控制項的寬度時,文本應該換到下一行顯示,Tk不會自動處理,但提供了屬性:
wraplength: 指定多少單位後開始換行
justify: 指定多行的對齊
ahchor: 指定文本(text)或映像(bitmap/image)在Label中的顯示位置
可用的值:
e
w
n
s
ne
se
sw
sn
center
布局如
nw n ne
w center e
sw s se
from tkinter import *root = Tk()#靠左對齊,文本置中Label(root,text = 'welcome to jcodeer.cublog.cn',bg = 'yellow',width = 40,height = 3,wraplength = 80,justify = 'left').pack()#置中對齊,文本居左Label(root,text = 'welcome to jcodeer.cublog.cn',bg = 'red',width = 40,height = 3,wraplength = 80,anchor = 'w').pack()#置中對齊,文本居右Label(root,text = 'welcome to jcodeer.cublog.cn',bg = 'blue',width = 40,height = 3,wraplength = 80,anchor = 'e').pack()root.mainloop()
如果有什麼疑問歡迎到我的公眾號提問~
Python GUI 02----Label