tkinter介紹
tkinter是python自帶的GUI庫,是對圖形庫TK的封裝
tkinter是一個跨平臺的GUI庫,開發的程序可以在win,linux或者mac下運行
除此之外還存在很多圖形庫,例如
pythonWin 僅適合window的界面編程庫
wxPython 第三方界面編程庫
組件概念
一個窗口中任意內容都可以稱之為一個組件
tkinter的組件包含以下幾種
按鈕組件
Button 按鈕組件
RadioButton 單選框組件
CheckButton 選擇按鈕組件
Listbox 列表框組件
文本輸入框組件
Entry 單行文本框組件
Text 多行文本框組件
標簽組件
Label 標簽組件,可以顯示圖片和文字
Message 標簽組件,可以根據內容將文字換行
菜單組件
Menu 菜單組件
MenuButton 菜單按鈕組件,可以使用Menu代替
滾動條組件
scale 滑塊組件
Scrollbar 滾動條組件
其他組件
Canvas 畫布組件
Frame 框架組件,將多個組件編組
Toplevel 創建子窗口容器組件
創建簡單的窗口
import tkinter
#生成主窗口對象
root = tkinter.Tk()
#保持主窗口一直消息循環中。。
root.mainloop()
帶有組件的窗口
import tkinter
#生成主窗口對象
root = tkinter.Tk()
#創建標簽 并且添加到主窗口中
label = tkinter.Label(root,text = '爺來了')
label.pack()
#創建按鈕,并且添加到主窗口中
btn1 = tkinter.Button(root,text = '按鈕1')
btn1.pack()
btn2 = tkinter.Button(root,text = '按鈕2')
btn2.pack()
#保持主窗口一直消息循環中。。
root.mainloop()
組件布局
組件布局一共三種方式
pack() 按照方位布局
place() 按照坐標布局
grid() 按照網格布局
1.pack布局方法
所有的Tkinter組件都包含專用的幾何管理方法,這些方法是用來組織和管理整個父配件區中子配件的布局的。Tkinter提供了截然不同的三種幾何管理類:pack、grid和place。
pack幾何管理采用塊的方式組織配件,在快速生成界面設計中廣泛采用,若干組件簡單的布局,采用pack的代碼量最少。pack幾何管理程序根據組件創建生成的順序將組件添加到父組件中去。通過設置相同的錨點(anchor)可以將一組配件緊挨一個地方放置,如果不指定任何選項,默認在父窗體中自頂向下添加組件。
pack()布局的通用公式
組件對象.pack(設置, …)
名稱 | 描述 | 取值范圍 |
---|---|---|
expand | 當值為“yes”時,side選項無效。組件顯示在父配件中心位置;若fill選項為”both”,則填充父組件的剩余空間。 | “yes”, 自然數, “no”, 0(默認值為“no”或0) |
fill | 填充x(y)方向上的空間,當屬性side=”top”或”bottom”時,填充x方向;當屬性side=”left”或”right”時,填充”y”方向;當expand選項為”yes”時,填充父組件的剩余空間。 | “x”, “y”, “both”(默認值為待選) |
ipadx, ipady | 組件內部在x(y)方向上填充的空間大小,默認單位為像素,可選單位為c(厘米)、m(毫米)、i(英寸)、p(打印機的點,即1/27英寸),用法為在值后加以上一個后綴既可。 | 非負浮點數(默認值為0.0) |
padx, pady | 組件外部在x(y)方向上填充的空間大小,默認單位為像素,可選單位為c(厘米)、m(毫米)、i(英寸)、p(打印機的點,即1/27英寸),用法為在值后加以上一個后綴既可。 | 非負浮點數(默認值為0.0) |
side | 定義停靠在父組件的哪一邊上。 | “top”, “bottom”, “left”, “right”(默認為”top”) |
before | 將本組件于所選組建對象之前pack,類似于先創建本組件再創建選定組件。 | 已經pack后的組件對象 |
after | 將本組件于所選組建對象之后pack,類似于先創建選定組件再本組件。 | 已經pack后的組件對象 |
in_ | 將本組件作為所選組建對象的子組件,類似于指定本組件的master為選定組件。 | 已經pack后的組件對象 |
anchor | 相對于擺放組件的位置的對齊方式,左對齊”w”,右對齊”e”,頂對齊”n”,底對齊”s” | “n”, “s”, “w”, “e”, “nw”, “sw”, “se”, “ne”, “center”(默認為” center”) |
注:以上選項中可以看出expand、fill和side是相互影響的。
pack類提供了下列函數
函數名 | 描述 |
---|---|
slaves() | 以列表方式返回本組件的所有子組件對象。 |
propagate(boolean) | 設置為True表示父組件的幾何大小由子組件決定(默認值),反之則無關。 |
info() | 返回pack提供的選項所對應得值。 |
forget() | Unpack組件,將組件隱藏并且忽略原有設置,對象依舊存在,可以用pack(option, …),將其顯示。 |
location(x, y) | x, y為以像素為單位的點,函數返回此點是否在單元格中,在哪個單元格中。返回單元格行列坐標,(-1, -1)表示不在其中。 |
size() | 返回組件所包含的單元格,揭示組件大小。 |
2.grid布局方法
grid幾何管理采用類似表格的結構組織配件,使用起來非常靈活,用其設計對話框和帶有滾動條的窗體效果最好。grid采 用行列確定位置,行列交匯處為一個單元格。每一列中,列寬由這一列中最寬的單元格確定。每一行中,行高由這一行中最高的單元格決定。組件并不是充滿整個單 元格的,你可以指定單元格中剩余空間的使用。你可以空出這些空間,也可以在水平或豎直或兩個方向上填滿這些空間。你可以連接若干個單元格為一個更大空間, 這一操作被稱作跨越。創建的單元格必須相臨。
grid()布局的通用公式為
組件對象.grid(option, …)
grid類提供了下列設置屬性
名稱 | 描述 | 取值范圍 |
---|---|---|
column | 組件所置單元格的列號。 | 自然數(起始默認值為0,而后累加) |
columnspan | 從組件所置單元格算起在列方向上的跨度。 | 自然數(起始默認值為0) |
ipadx, ipady | 組件內部在x(y)方向上填充的空間大小,默認單位為像素,可選單位為c(厘米)、m(毫米)、i(英寸)、p(打印機的點,即1/27英寸),用法為在值后加以上一個后綴既可。 | 非負浮點數(默認值為0.0) |
padx, pady | 組件外部在x(y)方向上填充的空間大小,默認單位為像素,可選單位為c(厘米)、m(毫米)、i(英寸)、p(打印機的點,即1/27英寸),用法為在值后加以上一個后綴既可。 | 非負浮點數(默認值為0.0) |
row | 組件所置單元格的行號。 | 自然數(起始默認值為0,而后累加) |
rowspan | 從組件所置單元格算起在行方向上的跨度。 | 自然數(起始默認值為0) |
in_ | 將本組件作為所選組建對象的子組件,類似于指定本組件的master為選定組件。 | 已經pack后的組件對象 |
sticky | 組件緊靠所在單元格的某一邊角。 | “n”, “s”, “w”, “e”, “nw”, “sw”, “se”, “ne”, “center”(默認為” center”) |
grid類提供了下列函數
函數名 | 描述 |
---|---|
slaves() | 以列表方式返回本組件的所有子組件對象。 |
propagate(boolean) | 設置為True表示父組件的幾何大小由子組件決定(默認值),反之則無關。 |
info() | 返回pack提供的選項所對應得值。 |
forget() | Unpack組件,將組件隱藏并且忽略原有設置,對象依舊存在,可以用pack(option, …),將其顯示。 |
grid_remove() | 從網格管理器中刪除此小部件。小部件不會被銷毀,并且可以由網格或任何其他管理器重新顯示。 |
3.place布局方法
這個的幾何管理器組織放置在一個特定的位置,在他們的父widget部件.
place()布局的通用公式為:
組件對象.place(option, …)
名稱 | 描述 | 取值范圍 |
---|---|---|
anchor | 相對于擺放組件的坐標的位置 | 請參閱:可能是N,E,S,W,東北,西北,東南或西南,羅盤方向指示的widget的角落,雙方默認是凈重(部件上左上角) |
height | 以像素為單位的高度.(絕對布局專用) | 像素 |
width | 以像素為單位的寬度.(絕對布局專用) | 像素 |
relheight | 組件相對于窗口的的高度(相對布局專用) | 0~1 |
relwidth | 組件相對于窗口的的寬度(相對布局專用) | 0~1 |
relx | 水平偏移為0.0和1.0之間浮動,父widget的一小部分的高度和寬度.(相對布局專用) | 0~1 |
rely | 垂直偏移為0.0和1.0之間浮動,父widget的一小部分的高度和寬度.(相對布局專用) | 0~1 |
x | 組件距離左上角的x坐標(絕對布局專用) | 像素 |
y | 組件距離左上角的y坐標(絕對布局專用) | 像素 |
place類提供了下列函數(使用組件實例對象調用)
函數名 | 描述 |
---|---|
place_slaves() | 以列表方式返回本組件的所有子組件對象。 |
place_configure(option=value) | 給pack布局管理器設置屬性,使用屬性(option)= 取值(value)方式設置 |
propagate(boolean) | 設置為True表示父組件的幾何大小由子組件決定(默認值),反之則無關。 |
place_info() | 返回pack提供的選項所對應得值。 |
grid_forget() | Unpack組件,將組件隱藏并且忽略原有設置,對象依舊存在,可以用pack(option, …),將其顯示。 |
location(x, y) | x, y為以像素為單位的點,函數返回此點是否在單元格中,在哪個單元格中。返回單元格行列坐標,(-1, -1)表示不在其中 |
size() | 返回組件所包含的單元格,揭示組件大小。 |
組件1 按鈕(button)
用于定義gui界面中的按鈕組件
tkinter.Button(用于存放的父組件,屬性參數...)
具備以下屬性
anchor 設置按鈕中文字的對其方式,相對于按鈕的中心位置
background(bg) 設置按鈕的背景顏色
foreground(fg) 設置按鈕的前景色(文字的顏色)
borderwidth(bd) 設置按鈕邊框寬度
cursor 設置鼠標在按鈕上的樣式
command 設定按鈕點擊時觸發的函數
bitmap 設置按鈕上顯示的位圖
font 設置按鈕上文本的字體
width 設置按鈕的寬度 (字符個數)
height 設置按鈕的高度 (字符個數)
state 設置按鈕的狀態
text 設置按鈕上的文字
image 設置按鈕上的圖片
組件2 文本框(Entry)和多行文本(Text)
用于定義頁面中文本的單行輸入框
#單行文本
tkinter.Entry(用于存放的父組件,屬性參數...)
#多行文本
tkinter.Text(用于存放的父組件,屬性參數…)
具備以下屬性
background(bg) 設置文本框的背景色
foreground(bg) 設置文本框的前景色
borderwidth(bd) 設置文本輸入框的邊框
font 設置文本框中的字體
width 設置文本框的寬度(字符個數)
height 設置文本框的高度(字符個數),僅限于text
state 設置文本框的狀態
selectbackground 選中文字時文本框的背景色
selectforeground 選中文字時文字的顏色
show 指定文本框顯示的字符,若為*,則表示為密碼框
textvariable 設置文本對應的變量,可以通過修改變量改變文字顯示。必須使用tkinter.IntVar() 或 tkinter.StringVar()產生的變量 entry可以使用
組件3 標簽(Lebal)
標簽用語在頁面中顯示文字或者圖片
tkinter.Label(用于存放的父組件,屬性參數...)
具備以下屬性
anchor 設置文本相對于標簽中心的位置
background 設置標簽的背景色
foreground 設置標簽的前景色
borderwidth 設置標簽的邊框寬度
width 設置標簽的寬度(字符個數)
height 設置標簽的高度(字符個數)
text 設置標簽中文本內容
font 設置標簽中文字的字體類型
bitmap 設置標簽的現實的位圖
image 設置標簽中顯示的圖片
justify 是設置標簽中多行文本的對其方式
textvariable 設置文本對應的變量,可以通過修改變量改變文字顯示,必須使用tkinter.IntVar() 或者tkinter.StringVar()產生的變量
組件4 菜單(Menu)
菜單用語在界面中設置菜單,和多級子菜單
在tkinter中,菜單組件的添加與其他組件有所不同。 菜單需要使用所創建的主窗口的 config方法添加到窗口中。
這個小工具的目標是,讓我們來創建我們的應用程序,可以通過使用各種菜單。核心功能,提供的方式來創建三個菜單類型:彈出式,頂層,和下拉
thinter.Menu(用于存放的父組件,屬性參數...)
具有以下屬性
activebackground 背景顏色,當它在鼠標下時將出現在選擇上。
activeborderwidth 指定在鼠標下方選擇的邊框的寬度。默認值為1像素。
activeforeground 當它在鼠標下方時,將出現在選擇上的前景色。
background(bg) 用于不在鼠標下的選擇的背景顏色。
borderwidth(bd) 圍繞所有選擇的邊框的寬度。默認值為1。
cursor 當鼠標在選項上方時出現的光標,但僅當菜單已被關閉時顯示。
disabledforeground 狀態為DISABLED的項目的文本顏色。
font 設置文本的字體
foreground(fd) 用于不在鼠標下的選擇的前景色。
postcommand 您可以將此選項設置為過程,并且每當有人啟動此菜單時,將調用該過程。
relief 菜單的默認3-D效果為relief = RAISED。
image 在這個menubutton上顯示一個圖像。
selectcolor 指定在檢查按鈕和單選按鈕中顯示的顏色。
tearoff 通常情況下,菜單可以被拆除,如果設置tearoff = 0,菜單將不會有撕紙功能,并且從0位置開始添加選擇。
title 通常,撕下菜單窗口的標題將與導致此菜單的menubutton或級聯文本相同。如果要更改該窗口的標題,請將標題選項設置為該字符串。
具有以下方法
add_command(選項) 在菜單中添加一個菜單項。
add_radiobutton(選項) 創建單選按鈕菜單項。
add_checkbutton(選項) 創建一個檢查按鈕菜單項。
add_cascade(選項) 通過將給定的菜單與父菜單相關聯來創建新的分層菜單
add_separator() 在菜單中添加分隔線。
add(類型,選項) 在菜單中添加一個特定類型的菜單項。
delete(startindex [,endindex]) 刪除從startindex到endindex的菜單項。
entryconfig(index,options) 允許您修改由索引標識的菜單項,并更改其選項。
index(item) 返回給定菜單項標簽的索引號。
insert_separator(index) 在index指定的位置插入一個新的分隔符。
invoke(index) 調用與位置索引選擇相關聯的命令回調。如果一個檢查按鈕,其狀態在設置和清除之間切換; 如果一個單選按鈕,那個選擇是設置的。
type(index) 返回由index指定的選項的類型:“cascade”,“checkbutton”,“command”,“radiobutton”,“separator”或“tearoff”。
萬能實例
from tkinter import *
root = Tk()
#定義點擊菜單觸發的方法
def hello():print("hello!")
#創建總菜單
menubar = Menu(root)
# 創建一個下拉菜單,并且加入文件菜單
filemenu = Menu(menubar)
#創建下來菜單的選項
filemenu.add_command(label="Open", command=hello)
filemenu.add_command(label="Save", command=hello)
#創建下拉菜單的分割線
filemenu.add_separator()
filemenu.add_command(label="Exit", command=root.quit)
#將文件菜單作為下拉菜單添加到總菜單中,并且將命名為File
menubar.add_cascade(label="File", menu=filemenu)
# 顯示總菜單
root.config(menu=menubar)
root.mainloop()
組件5 單選框(Radiobutton)與復選框(Checkbutton)
thinter.Radiobutton(用于存放的父組件,屬性參數...)
thinter.Checkbutton(用于存放的父組件,屬性參數...)
具有以下屬性
anchor 設置組件中文字的對其方式
background(bg) 指定組件的背景色。
borderwidth(bd) 指定組件邊框的寬度。
bitmap 指定組件中的位圖。
font 指定組件中文本的字體。
foreground(fg) 指定組件的前
height 指定組件的高度。
image 指定組件中的圖片。
justify 指定組件中多行文本的對齊方式。
text 指定組件中的文本,可以 使用“\ n” 表示換行。
value 指定組件被選中后(單選框)
onvalue 組件勾選狀態值(復選框)
offvalue 組件取消勾選狀態的值(復選框)
variable 指定組件所關聯的變量。需要使用tkinter. IntVar()或者tkinter. StringVar()創建的值
width 指定組件的寬度。
command 設置復選框操作的觸發命令(復選框)
組件6 消息對話框(messagebox)
用于界面提示成功,失敗,警告等相關信息提示框
tkinter。messagebox.FunctionName(title, message [, options])
參數:
FunctionName: 這是相應的消息框函數的名稱.
title: 這是在一個消息框,標題欄顯示的文本.
message: 這是要顯示的文字作為消息.
options: 選項有替代的選擇,你可以用它來定制一個標準的消息框。一些可以使用的選項是默認和家長。默認選項是用來指定默認的按鈕,如中止,重試,或忽略在消息框中。父選項是用來指定要顯示的消息框上的頂層窗口.
你可以使用以下功能之一
showinfo() 顯示信息對話框
showwarning() 提示警告對話框
showerror() 顯示錯誤對話
askquestion() 問題對話框
askokcancel() 確定還是取消對話框
askyesno() 是不是對話框
askretrycancel() 重試或者取消對話框
除了上述6個標準消息框外,還可以使用tkinter.messagebox._show函數創建其他類型 的消息框。tkinter.messagebox._show函數的控制參數如下。
default 指定消息框的按鈕。 icon 指定消息框的圖標。 message 指定消息框所顯示的消息。 parent 指定消息框的父組件。 title 指定消息框的標題。 type 指定消息框的類型。
使用標準對話框(簡單對話/文件對話/顏色對話)
使用 tkinter.simpledialog 模塊、tkinter.filedialog 模塊、 tkinter.colorchooser 模塊可以創建標準的對話框。
tkinter.simpledialog模塊 可以創建標準的輸入對話框。
tkinter.filedialog模塊 可以創建文件打開和保存文件對話框。
tkinter.colorchooser模塊 可以創建顏色選擇對話框。
tkinter.simpledialog模塊
tkinter.simpledialog模塊可以使用函數創建三種類型的對話框
tkinter.simpledialog.askstring(標題,提示文字,初始值) 輸入字符串
tkinter.simpledialog.askinteger(title,prompt,initialvalue) 輸入整數
tkinter.simpledialog.askfloat(title,prompt,initialvalue) 輸入浮點型
注意:第三個參數為關鍵字參數
tkinter.filedialog模塊
tkinter.filedialog模塊中可以使用兩種類型的對話框
tkinter.filedialog.askopenfilename(關鍵字參數傳入) 創建標準的【 打開 文件】對話框。
tkinter.filedialog.askdirectory(關鍵字參數傳入) 創建標準的【 打開 文件夾】對話框。
tkinter.filedialog.asksaveasfilename(關鍵字參數傳入) 可以創建標準的【 保存 文件】對話框。
askdirectory(**options)
Ask for a directory, and return the file name
askopenfile(mode='r', **options)
Ask for a filename to open, and returned the opened file
askopenfilename(**options)
Ask for a filename to open
askopenfilenames(**options)
Ask for multiple filenames to open
Returns a list of filenames or empty list if
cancel button selected
askopenfiles(mode='r', **options)
Ask for multiple filenames and return the open file
objects
returns a list of open file objects or an empty list if
cancel selected
asksaveasfile(mode='w', **options)
Ask for a filename to save as, and returned the opened file
asksaveasfilename(**options)
Ask for a filename to save as
其具有以下幾個相同的可選參數
filetypes 指定文件類型。 initialdir 指定默認目錄。 initialfile 指定默認文件。 title 指定對話框標題。
tkinter.colorchooser模塊
tkinter.colorchooser模塊中的askcolor函數可以創建標準的【顏色 選擇】對話框, 其具有以下幾個可選參數
tkinter.colorchooser.askcolor(關鍵字參數傳入)
initialcolor 指定 初始化 顏色。
title 指定 對話框 標題。
組件6 Frame 框架
thinter.Menu(用于存放的父組件,屬性參數...)
具有以下屬性
background(bg) 正常的背景顏色顯示在標簽和指示器后面。
borderwidth(bd) 指標周圍邊界的大小。默認值為2像素。
cursor 如果將此選項設置為光標名稱(箭頭,點等),則鼠標光標將在檢查按鈕上方更改為該模式。
height 新框架的垂直尺寸。
highlightbackground 當框架沒有焦點時,焦點的顏色突出顯示。
highlightcolor 當框架具有焦點時,焦點突出顯示的顏色。
highlightthickness 焦點亮點的厚度。
relief 使用默認值,relief = FLAT,檢查按鈕不會從背景中脫穎而出。您可以將此選項設置為任何其他樣式
width checkbutton的默認寬度取決于所顯示的圖像或文字的大小。你可以設置此選項的字符數和checkbutton的,總是有許多字符的空間。
組件7 Toplevel
頂層部件的工作,直接由窗口管理器管理的窗口
thinter.Toplevel ( option, ... )
具有以下屬性
background(bg) 窗口的背景顏色。
borderwidth(bd) 邊框寬度(以像素為單位)默認為0。
cursor 當鼠標在此窗口中時出現的光標。
class_ 通常,文本窗口小部件中選擇的文本將導出為窗口管理器中的選擇。如果您不想要該行為,請設置exportselection = 0。
font 插入窗口小部件的文本的默認字體。
froeground(fg) 在窗口小部件中用于文本(和位圖)的顏色。您可以更改標記區域的顏色; 這個選項只是默認值。
height 窗口高度
relief 通常,頂級窗口將不會有三維邊框。要獲得陰影邊框,請將bd選項設置為較大的默認值為零,并將relief選項設置為其中一個常量。
width 所需的窗口寬度。
具有以下方法
deiconify() 在使用iconify或提取方法后顯示窗口。
frame() 返回系統特定的窗口標識符。
group(window) 將窗口添加到給定窗口管理的窗口組中。
iconify() 將窗口轉換為圖標,而不會破壞它。
協議(名稱,函數) 將函數注冊為將為給定協議調用的回調函數。
iconify() 將窗口轉換為圖標,而不會破壞它。
state() 返回窗口的當前狀態。可能的值是正常的,標志性的,撤銷的和圖標。
transient([master]) 當沒有給出參數時,將窗口轉換為給定主機或窗口的父級的臨時(瞬態)窗口。
withdraw() 從屏幕中刪除窗口,而不會破壞它。
maxsize(width,height) 定義此窗口的最大大小。
minsize(width,height) 定義此窗口的最小大小。
positionfrom(who) 定義位置控制器。
resizable(width,height)定義resize標志,用于控制窗口是否可以調整大小。
sizefrom(who) 定義大小控制器。
title(string) 定義窗口標題。
事件綁定
之前能夠觸發操作的只有2個組件,一個按鈕一個菜單的選項卡 command屬性 設置操作對應的函數
鼠標事件類型
<Button-1> 按下了鼠標左鍵 <ButtonPress-1>
<Button-2> 按下了鼠標中鍵 <ButtonPress-2>
<Button-3> 按下了鼠標右鍵 <ButtonPress-3>
<Enter> 鼠標進入組件區域
<Leave> 鼠標離開組件區域
<ButtonRelease-1> 釋放了鼠標左鍵
<ButtonRelease-2> 釋放了鼠標中鍵
<ButtonRelease-3> 釋放了鼠標右鍵
<B1-Moion> 按住鼠標左鍵移動
<B2-Moion> 按住鼠標中鍵移動
<B3-Moion> 按住鼠標右鍵移動
<Double-Button-1> 雙擊鼠標左鍵
<Double-Button-2> 雙擊鼠標中鍵
<Double-Button-3> 雙擊鼠標右鍵
<MouseWheel> 滾動鼠標滾輪
鍵盤事件類型
<KeyPress> 表示任何鍵盤按下
<KeyPress-A> 表示按下鍵盤A鍵 A可以設置為其他的按鍵
<Alt-KeyPress-A> 表示同時按下Alt和A鍵 A可以設置為其他的按鍵
<Control-KeyPress-A> 表示同時按下Ctrl和A鍵 A可以設置為其他的按鍵
<Shift-KeyPress-A> 表示同時按下Shift和A鍵 A可以設置為其他的按鍵
<Double-KeyPress-A> 表示雙擊鍵盤A鍵 A可以設置為其他的按鍵
<Lock-KeyPress-A> 表示開啟大寫之后鍵盤A鍵 A可以設置為其他的按鍵
<Alt-Control-KeyPress-A> 表示同時按下alt+Ctrl和A鍵 A可以設置為其他的按鍵
注意:鍵盤事件除了entry和text組件其他組件的事件最好綁定在主界面上
事件對象中包含的信息
x,y 當前觸發事件時鼠標相對觸發事件的組件的坐標值
x_root,y_root 當前觸發事件時鼠標相對于屏幕的坐標值
char 獲取當前鍵盤事件時按下的鍵對應的字符
keycode 獲取當前鍵盤事件時按下的鍵對應的的ascii碼
type 獲取事件的類型
num 獲取鼠標按鍵類型 123 左中右
widget 觸發事件的組件
width/height 組件改變之后的大小和configure()相關
窗口和組件相關事件類型
Activate 當中組件由不可以用變為可用時 針對于state的變值
Deactivate 當組件由可用變為不可用時觸發
Configure 當組件大小發生變化時觸發
Destory 當組件銷毀時觸發
FocusIn 當組件獲取焦點時觸發 針對于Entry和Text有效
Map 當組件由隱藏變為顯示時觸發
UnMap 當組件由顯示變為隱藏時觸發
Perproty 當窗口屬性發生變化時觸發
事件綁定函數
組件.bind('事件類型',事件函數)
為一個組件綁定一個操作
組件.bind_class('組件類型','事件類型',事件函數)
為一類組件綁定一個操作
組件類型就是創建組件的方法名 例如按鈕組件:Button
組件.bind_all('事件類型',事件函數)
為所有組件綁定一個操作(所有操作都會當作對主界面的操作)