Python GUI編程利器:Tkinker中的標(biāo)簽和按鈕(2)
小朋友們好,大朋友們好!
我是貓妹,一名愛上Python編程的小學(xué)生。
和貓妹學(xué)Python,一起趣味學(xué)編程。

什么是控件
一個GUI應(yīng)用程序是由許多組件組成的,這些組件被稱為控件。
把控件排列在容器上,加上相關(guān)代碼,程序就差不多就做好啦!
在Tkinter中,可以通過Widget類的子類創(chuàng)建各種控件。
關(guān)于控件,我們逐一簡單學(xué)習(xí)下。
要知道,控件在很多GUI程序上都會使用到,思想是相同的。
今日目標(biāo)
實現(xiàn)下面效果:


跟蹤控件的值
網(wǎng)站開發(fā),分為前端和后端。
前端可以理解為,一個漂亮吸引人的界面。
后端呢?就是各種數(shù)據(jù)。

Tkinker支持部分控件和變量的雙向綁定,通過這種方式保持?jǐn)?shù)據(jù)一致性。
實際上,只需要將變量傳遞給控件的textvariable、listvariable、variable等參數(shù)即可。
textvariable、listvariable和控件內(nèi)顯示文本內(nèi)容相關(guān)。
variable是控件的其他參數(shù)。
同時,Tkinker對變量類型也有要求,不能是普通類型變量,必須是Tkinker模塊中variable類的子類,比如:
IntVar類:整數(shù)類型變量
DoubleVar類:浮點類型變量
StringVar類:字符串類型變量
BooleanVar類:布爾類型變量
Variable類有2個方法,get方法和set方法,用于獲取變量的值和設(shè)置變量的值。

標(biāo)簽(Label類)
創(chuàng)建標(biāo)簽對象方法:
Label(master,text,background,width,height,cursor,image,bitmap,anchor,relief,textvariable)
master表示標(biāo)簽的父容器
text表示標(biāo)簽的文本內(nèi)容
background表示標(biāo)簽的背景顏色
width表示標(biāo)簽的寬度
height表示標(biāo)簽的高度
cursor表示鼠標(biāo)移動上去光標(biāo)的形狀,其值有arrow(默認(rèn)值),circle,cross,plus
imge表示標(biāo)簽的圖片,類型為PhotoImage或BitmapImage,或其他兼容類型
bitmap表示標(biāo)簽的位圖,如果設(shè)置了image則可以忽略它
anchor表示標(biāo)簽中文本內(nèi)容或圖片位置,取值有n,s,,w,e,ne,nw,sw,se和center(默認(rèn))

relief表示標(biāo)簽的邊框樣式,其值包括flat(默認(rèn)),sunken,raised,groove,ridge
textvariable用于修改標(biāo)簽文本內(nèi)容,必須和variable類型的變量進(jìn)行綁定
參考代碼:
import tkinter as tk
root = tk.Tk()
root.title('標(biāo)簽(Label類)')
root.geometry('800x600+400+300')
root.resizable(width=False, height=False)
# 在創(chuàng)建完控件之后,必須調(diào)用Tkinter中的布局管理器才可以正常顯示控件。pack就是Tkinter中的布局管理器之一
tk.Label(root, text="標(biāo)簽", background='yellow', height='5', width='50', cursor="plus").pack()
tk.Label(root, text="標(biāo)簽", background='pink', height='5', width='50', cursor="cross", anchor='e', relief='groove').pack()
# 通過使用PhotoImage創(chuàng)建圖片對象
photo = tk.PhotoImage(file='pic/maomei.png')
tk.Label(root, image=photo).pack()
root.mainloop()
按鈕類(Button類)
創(chuàng)建按鈕對象方法:
Button(master,text,background,width,height,image,anchor,relief,command,textvariable,state)
大部分參數(shù)和標(biāo)簽類(Label類)參數(shù)是一致的。
除了command和state。
command表示按鈕關(guān)聯(lián)的函數(shù)。即函數(shù)點擊時,要執(zhí)行的函數(shù)
state表示按鈕的狀態(tài),取值有normal(默認(rèn)),active,disable
參考代碼:
import tkinter as tk
root = tk.Tk()
root.title('按鈕(Button類)')
root.geometry('800x600+400+300')
root.resizable(width=False, height=True)
# 定義圖片列表,以達(dá)到保存圖片對象引用的目的
lt_pic = []
def onclick():
? ?print('關(guān)注我,為學(xué)習(xí)加油')
def createButton():
? ?tk.Button(root, text='我是一個按鈕', width='20',heigh='2',background='pink', relief='sunken', anchor='e', command=onclick).pack()
? ?photo = tk.PhotoImage(file='pic/maomei.png')
? ?tk.Button(root, image=photo, command=onclick).pack()
? ?# 將圖片對象添加到圖片列表中
? ?lt_pic.append(photo)
createButton()
root.mainloop()

怎么樣?
你學(xué)會了嗎?

好了,我們今天就學(xué)到這里吧!
如果遇到什么問題,咱們多多交流,共同解決。
我是貓妹,咱們下次見!