GUI的最終選擇 Tkinter(二):Label和Button組件
阿新 • • 發佈:2018-11-10
rom 設置 bubuko png 創建 ont gui 發生 pac
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()
結果如下:我這裏放兩張圖片了
GUI的最終選擇 Tkinter(二):Label和Button組件