GUI的最終選擇 Tkinter(二):Label和Button組件


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()

結果如下:我這里放兩張圖片了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM