GUI的最終選擇 Tkinter(二):Label和Button元件
阿新 • • 發佈:2018-11-09
Label元件
Lable元件是用於介面上輸出描述的標籤,例如提示使用者“您下載的電影含有未成年人限制內容,請滿18歲以後點選觀看!”,先來上結果圖:
在來看下它的程式碼:
from tkinter import * root = Tk() #建立一個文字Label物件 textLable = Label(root,\ text='您所下載的影片含有未成年限制內容,\n請滿18歲再檢視') textLable.pack(side=LEFT) photo = PhotoImage(file='18.gif') imglable= Label(root,image=photo) imglable.pack(side=RIGHT) mainloop()
顯示不太好看,所以我們修改下,在字串中使用\n對顯示的文字進行換行
如果想將文字部分左對齊,並在水平位置與邊框留有距離,只要設定Label的justify和padx選項即可。
完整程式碼如下:
from tkinter import * root = Tk() #建立一個文字Label物件 textLable = Label(root,\ text='您所下載的影片含有未成年限制內容,\n請滿18歲再檢視',\ justify=LEFT,\ padx=10) textLable.pack(side=LEFT) photo = PhotoImage(file='18.gif') imglable = Label(root,image=photo) imglable.pack(side=RIGHT) mainloop()
這是圖片和文字分開的,但是有時候需要文字顯示在圖片的上面,那麼我們只需要設定compound選項即可。
1 from tkinter import * 2 3 root = Tk()4 photo = PhotoImage(file='bg.gif') 5 thelable = Label(root, 6 text = 'study python', 7 justify=LEFT, 8 image= photo, 9 compound=CENTER, 10 font=('宋體',20), 11 fg='white') 12 thelable.pack() 13 mainloop()
結果圖:
Button元件
Button元件是用於實現一個按鈕,它的絕大多數選項和Label元件是一樣的,不過Button元件有一個Label元件實現不了的功能,那就是可以接收使用者的資訊。Button元件有一個command選項,用於指定一個函式或方法,當用戶單擊按鈕的時候,Tkinter就會自動地呼叫這個函式或方法。
來我們修改上面的Label的那個例子,增加一個按鈕,在按鈕被單擊後Label文字發生改變。想要文字發生改變,只需要設定textvariable選項為Tkinter變數即可:
1 # 2 from tkinter import * 3 4 def callback(): 5 var.set('我才不信了,騙子') 6 7 root = Tk() 8 frame1 = Frame(root) 9 frame2 = Frame(root) 10 var = StringVar() 11 var.set('您所下載的影片含有未成年限制內容,\n請滿18歲再檢視') 12 textLable = Label(frame1, 13 textvariable=var, 14 justify=LEFT) 15 textLable.pack(side=LEFT) 16 17 photo = PhotoImage(file='18.gif') #用PhotoImage例項化一個圖片物件,注:支援gif的 18 imglable = Label(root,image=photo) #建立一個影象Label的物件 19 imglable.pack(side=RIGHT) 20 21 theButton = Button(frame2,text='我已經滿18歲',command=callback) #增加一個按鈕 22 theButton.pack() 23 24 frame1.pack(padx=10,pady=10) 25 frame2.pack(padx=10,pady=10) 26 mainloop()
結果如下:我這裡放兩張圖片了