python中的tkinter模塊

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('事件類型',事件函數)

為所有組件綁定一個操作(所有操作都會當作對主界面的操作)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/455968.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/455968.shtml
英文地址,請注明出處:http://en.pswp.cn/news/455968.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PAT甲題題解-1011. World Cup Betting (20)-誤導人的水題。。。

題目不嚴謹啊啊啊啊式子算出來結果是37.975樣例輸出的是37.98我以為是四舍五入的啊啊啊&#xff0c;所以最后輸出的是sum0.005結果告訴我全部錯誤啊結果直接保留兩位小數就可以了啊啊啊啊 水題也不要這么坑人啊啊啊啊 #include <iostream> #include <algorithm> #i…

【Django】文件上傳以及celery的使用

上傳文件、異步、初始化腳本 面試題&#xff1a; 項目中的靜態文件處理&#xff08;JS/CSS/image&#xff09; 自己在機房內優化的方法&#xff1a;1. Nginx/lighttpd(lighty-douban)&#xff1a;Nginx 處理靜態資源速度非常快&#xff0c;并且自身還帶有緩存。2. 80: Nginx -&…

Android 查看每個應用的最大可用內存

http://blog.csdn.net/vshuang/article/details/39647167 Android 內存管理 &Memory Leak & OOM 分析 單個應用可用的最大內存 Android設備出廠以后&#xff0c;java虛擬機對單個應用的最大內存分配就確定下來了&#xff0c;超出這個值就會OOM。這個屬性值是定義在…

分析一段H264視頻數據

分析一段H264視頻數據 Posted on 2007-05-31 09:42 vcommon 閱讀(1968) 評論(8) 編輯 收藏 引用 分析 00 00 00 01 67 42 00 1E 99 A0 B1 31 00 00 00 01 H264的數據流分為兩種&#xff0c;一種是NAL UNIT stream(RTP),一種是 bits stream, 兩者可以互相轉換。我們分析的這個…

SVN在vs2013中使用

http://download.csdn.net/download/show_594/9112963 內包含VisualSVN 5.0.1的官方原版安裝包及破解文件VisualSVN.Core.L.dll. 使用方法&#xff1a; 1、運行&#xff1a;VisualSVN-5.0.1.msi 進行原版的安裝。 2、打開VisualSVN的安裝路徑。進入其子目錄bin。將壓縮包內的Vi…

springboot springmvc mybatis_12道重點的Spring Boot面試題,幫你整理好了!

今天跟大家分享下SpringBoot常見面試題的知識。最新2020整理收集的一些面試題&#xff08;都整理成文檔&#xff09;&#xff0c;有很多干貨&#xff0c;包含mysql&#xff0c;netty&#xff0c;spring&#xff0c;線程&#xff0c;spring cloud等詳細講解&#xff0c;也有詳細…

【數據分析】快速獲取微博用戶數據,圖片,視頻

功能輸出實例運行環境使用說明 下載腳本安裝依賴程序設置設置數據庫&#xff08;可選&#xff09;運行腳本按需求修改腳本&#xff08;可選&#xff09; 如何獲取user_id添加cookie與不添加cookie的區別&#xff08;可選&#xff09;如何獲取cookie&#xff08;可選&#xff09…

“云計算”越來越重要 但更重要的是“云安全”

據Gartner公司的預測&#xff0c;云安全服務業務繼續保持強勁&#xff0c;2017年最終將達到59億美元的規模&#xff0c;比2016年上漲了21&#xff05;。 云安全服務市場的增長速度將超過整體信息安全市場。Gartner表示&#xff0c;電子郵件的安全性&#xff0c;網絡安全和身份識…

HTML中Head頭

HTML中Head頭 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>網頁標題</title> </head> <body>網頁顯示內容 </body> </html>HEAD標簽里面負責對網頁進行一些設置以及…

H.264的兩個概念:DC系數和AC系數。 MV預測過程詳解(附圖)

在做熵編碼之前&#xff0c;先明確兩個概念&#xff1a;DC系數和AC系數。 量化后得到的仍是64個系數&#xff0c;量化并沒有改變系數的性質。大家知到DCT變換是將數據域從時&#xff08;空&#xff09;域變換到頻域&#xff0c;在頻域平面上變換系數是二維頻域變量u和v的函數。…

1028. List Sorting (25)

題目鏈接&#xff1a;http://www.patest.cn/contests/pat-a-practise/1028 題目&#xff1a; 1028. List Sorting (25) 時間限制200 ms內存限制65536 kB代碼長度限制16000 B判題程序Standard作者CHEN, YueExcel can sort records according to any column. Now you are suppose…

【后端開發】分析抖音后臺架構

最后分享抖音美女爬蟲 https://github.com/wangshub/Douyin-Bot

看日本如何用IoT打造智能工廠

在技術、市場、政策等方面因素的推動下&#xff0c;全球正在掀起一股智能制造的熱潮&#xff0c;越來越多的國家大力推進智能工廠的建設。有機構預測&#xff0c;未來五年智能工廠領域的投資將促進生產力增長27%&#xff0c;預計到2022年年底&#xff0c;21%的工廠將會成為智能…

HTML標題

HTML標題 通過 <h1>、<h2>、<h3>、<h4>、<h5>、<h6>,標簽可以在網頁上定義6種級別的標題。 6種級別的標題表示文檔的6級目錄層級關系&#xff0c;比如說&#xff1a; <h1>用作主標題&#xff08;最重要的&#xff09;&#xff0c;其…

264中 POC的計算方法

作者&#xff1a;jogh.264 參考代碼 JM86 一參數說明 這一節闡述的是encoder.cfg 中的參數對編碼過程的影響 要注意的是encoder.cfg 中的參數跟input 結構體中的變量是一一對應的 ? StartFrame&#xff1a;從視頻流的第幾幀開始編碼 ? FramesToBeEncoded&#xff1a;指明…

c++ 測試串口速率_納米軟件案例之電流控制測試系統

項目背景西安某機電研究所電流控制測試系統軟件需要用記錄儀設置采樣速率對電流數據進行采集&#xff0c;并能夠進行數據實時顯示、保存。為更好的分析實驗現象&#xff0c;需要歷史測試數據可查詢并顯示。目前采用的傳統的手動測試&#xff0c;測試操作繁雜。數據保存困難&…

【Sublime】使用 Sublime 工具時運行python文件

使用 Sublime 工具時報Decode error - output not utf-8解決辦法 在菜單中tools中第四項編譯系統 內最后一項增添新的編譯系統 自動新建 Python.sublime-build文件,并添加"encoding":"cp936"這一行,保存即可 使用python2 則注釋encoding改為utf-8 {&quo…

智慧城市這份試卷 國外城市怎么答題?

在近五年&#xff0c;國內智慧城市建設的熱潮一直增無減。據媒體梳理&#xff0c;透過各地政府工作報告和“十三五”規劃發現&#xff0c;我國95%的副省級城市、76%的地級城市&#xff0c;總計超過500個城市&#xff0c;均在政府工作報告或“十三五”規劃中明確提出&#xff0c…

HTML段落,換行,字符實體

HTML段落,換行,字符實體 html段落 <p>標簽定義一個文本段落&#xff0c;一個段落含有默認的上下間距&#xff0c;段落之間會用這種默認間距隔開&#xff0c;代碼如下&#xff1a; <!DOCTYPE html> <html> <head><meta charset"UTF-8"&g…

【python】有意思的python小項目GitHub地址匯總

Licence_plate_recognize 車牌識別 Djang-Stu 基于python的Django框架學生信息管理系統 sklearn-machine-learning 數據分析-機器學習-深度學習【個人學習筆記】 movie_analysis 對電影影評分析生成詞云 spider_doubanTOP 爬取豆瓣電影top250/爬取豆瓣圖書top250 yuyin_re…