安基網 首頁 編程 Python 查看內容

Python tkinter開發桌面應用程序大解密,看完都會了

2020-5-21 11:16| 投稿: xiaotiger |來自: 互聯網


免責聲明:本站系公益性非盈利IT技術普及網,本文由投稿者轉載自互聯網的公開文章,文末均已注明出處,其內容和圖片版權歸原網站或作者所有,文中所述不代表本站觀點,若有無意侵權或轉載不當之處請從網站右下角聯系我們處理,謝謝合作!

摘要: 在我們平時寫代碼的時候,為了讓程序效果顯得更直觀,我們通常都會給它們套上一層美麗的外衣,這層外衣便是-------GUI,中文名又叫,圖形用戶接口,能起到很好的交互作用。下面我們來著重介紹下Python中自帶的GUI模塊-----tkinter,看看他有哪些豐富的圖形接口吧。1.安裝并導入哦,tkinter系統自帶,無 ...

在我們平時寫代碼的時候,為了讓程序效果顯得更直觀,我們通常都會給它們套上一層美麗的外衣,

這層外衣便是-------GUI,中文名又叫,圖形用戶接口,能起到很好的交互作用。下面我們來著重介紹下Python中自帶的GUI模塊-----tkinter,看看他有哪些豐富的圖形接口吧。

1.安裝并導入

哦,tkinter系統自帶,無需安裝,直接導入即可:

import tkinter  as tk  # 因為它比較長,所以 給他個簡寫的方式 ,用t代表它。


2.實例化窗口

root= tk.Tk()            #主窗口
root.title('hello')   #窗口標題
root.geometry('400x500')  #窗口尺寸
root.wm_minsize(140, 170) # 設置窗口最小化大小
root.wm_maxsize(1440, 2800)             # 設置窗口最大化大小
root.iconbitmap('1.ico')   #窗口圖標 必須是ico格式的圖片
root.resizable(width=False, height=True)     # 設置窗口寬度不可變,高度可變
root.mainloop() #主窗口循環顯示


我們的第一個窗口就這樣應運而生了,另外他還有許多其他功能,比如:

root.quit()    #退出
root.destroy() #銷毀
root.update() #刷新 可以接收用戶改變程序進程
root.update_idletasks() #刷新 不能接收用戶改變程序進程
root.wm_title('i love you') #最小化顯示字樣
root.configure(background='blue') #背景顏色

下面我們再給他添加點別的部件和功能吧。


3.基本部件

tkinter里面有很多豐富的部件,有標簽,文本框,列表框,下拉列表框,多選框,單選框等等,下面我們一起認識下他們吧。

一、標簽

它是tkinter里面的標簽部件,主要用于提示。那么他有哪些有趣的功能了,一起看一下:

label=tk.Label(root,  
text='Hello', #標簽內文本
bg='red',      #背景顏色
font=('Arial',20), #字體和字體大小
width=10,  #文本寬度
height=5   #文本高度
)

不過我們光這樣標簽還不會添加到我們的主界面中,還得給他進行下一步操作:

label.pack() #添加部件到主界面

下面看下效果:



這樣我們就成功將他添加進來了,有點丑,等會我們在做修改。大家可以看到現在的標簽里的值是靜態無法修改的,那要是我們想讓他動態變更了,那我們可以這樣做:



這樣就達到了修改標簽的值的功能

關于標簽還有許多優秀的方法,比如說:

label.configure(text) #重新設置標簽文本 得是text的時候設置才生效
label.configure(background='blue') #重新設置標簽背景

標簽的屬性總共有下面幾種:

    anchor              文本位置;
background(bg)     背景色;
  foreground(fg)     前景色;
  borderwidth(bd)     邊框寬度;
  width            標簽寬度;
  height           標簽高度;
  bitmap           標簽中的位圖;
  font              字體;
  image            標簽中的圖片;
  justify           多行文本的對齊方式;
  text            標簽中的文本,可以使用'n'表示換行
  textvariable     顯示文本自動更新,與StringVar等配合著用


二、按鈕

按鈕的功能主要是實現點擊功能,比如說確認,提交操作。那么他有哪些操作了:



可以看出,成功實現了點擊事件,而且我們可以通過點擊按鈕來改變標簽的值,下面來看看:




可以看出,成功的改變了值和背景顏色,奧利給。大家可能對上圖中的side='left'有點不理解,其實那個就是確定組件位置的,一個左一個右。按鈕還有一個隱藏和顯示的功能也是相當好實現的:

button.pack          #顯示
button.pack_forget   #隱藏

關于button還有以下方法供大家學習:

tanchor           t文本位置;
tbackground(bg)   按鈕的背景色;
bitmap:      按鈕上顯示的位圖;
borderwidth(bd)    按鈕邊框的寬度;
command:       按鈕消息的回調函數;
cursor:     鼠標移動到按鈕上的指針樣式;
font:    按鈕上文本的字體;
foreground(fg)     按鈕的前景色;
height:     按鈕的高度;
image:      按鈕上顯示的圖片;
state:     按鈕的狀態(disabled);
text:     按鈕上顯示的文本;
width:      按鈕的寬度
padx      設置文本與按鈕邊框x的距離,還有pady;
activeforeground    按下時前景色
textvariable    可變文本,與StringVar等配合著用


三、文本框,多行文本框

之所以拿來一起講,是因為他們很多參數都是一樣的,所以沒必要分開講,我們先來說說文本框:

1.文本框

用來接受用戶輸入,常用來登陸賬號和密碼



可以看到一個顯示為漢字,另一個則是?,這就是他的明文和密文設置了。我們還可以獲取到它里面的值用來校驗數據庫中的信息以便登陸,不過這里我們只把它打印出來即可:



完美將他打印了出來,小伙伴們看到這里是不是可以寫個登陸系統嘞嘞。單行文本框自定義插入值:

e1.insert(index,string) #在指定索引位置插入字符串


2.多行文本框

與文本框不同的是,它可以顯示多行信息,一般用來顯示某些結果。



可以看到,多行文本就是這樣的,我們可以給他插入文本:

tt.insert('insert','你是豬嗎')  #首行插入
tt.insert('current','我是豬') #當前插入
tt.insert('end','123') #末尾插入



除了插入還可以刪除:

tt.delete('1.0',tk.END) #刪除文本框所有內容

另外文本框有時候需要實時更新內容所以還有一個方法:

tt.update()  #更新多行文本框內容



除此之外,我們還可以在多行文本框中添加其他組件實現一些功能。

1.記住密碼功能



2.照片查看器

我們需要認識一個新的方法,他叫PhotoImage,他的設計比較古怪,個人覺得,因為他只支持gif圖片。



通過上面的設置創建了一個window執行函數,在實際應用中可以用它來實現記住密碼和查看gif照片的功能。

關于文本框和多行文本框就說到這里,他們還有很多其他的方法:

指定位置插入值:
tt.mark_set("here","3.2") #建立mark,相當于索引,第三行第二列
tt.insert('here',"hello") #插入hello
tt.mark_unset('here') #刪除mark
高亮顯示文本:
tt.tag_add('tag1','1.3','2.1','2.2') #設置要設置樣式的區域
tt.tag_config("tag1",background="green",foreground="blue")
tt.tag_config("tag2",background="blue",foreground="red")#如設置多個樣式則新樣式覆蓋舊樣式
tt.tag_lower("tag1") #可通過tagraise()和tag_lower()方法來提高和降低某個Tag的優先級
獲取多行文本框的值:
tt.get('0.0','end')
文本綁定鼠標事件:
tt.tag_add("link","2.1","2.5")
tt.tag_config("link",foreground="blue",underline=True) #選中的內容添加下劃線 藍色背景顏色
def show_1(event):
tt.config(cursor="arrow") #鼠標箭頭型
def show_2(event):
tt.config(cursor="xterm") #鼠標I型
def click(event):
print('我被單機了')
tt.tag_bind("link","",show_1)
tt.tag_bind("link","",show_2)
tt.tag_bind("link","",click)



恢復,撤銷:
tt.edit_undo() #撤銷
tt.editredo() #恢復
更多精彩內容:
tbackground(bg)      文本框背景色;
foreground(fg) 前景色;
selectbackground   選定文本背景色;
selectforeground   選定文本前景色;
borderwidth(bd)   文本框邊框寬度;
font  字體;
show    文本框顯示的字符,若為*,表示文本框為密碼框;
state    狀態;
width      文本框寬度
textvariable    可變文本,與StringVar等配合著用


四、單選框,復選框

這個我們平時勾選答案是單選還是多選時很常見。下面讓我們來看看吧:

1.單選框Radiobutton



2.復選框Checkbutton



可以看出,做出來了,不過有點復雜,因為沒有善用循環,下面給出一種簡單的寫法:



可以看到,幾行代碼就把四個控件列出來了。關于單選框多選框還有很多有趣的方法:

tanchor           文本位置;
background(bg)   背景色;
foreground(fg) 前景色;
borderwidth 邊框寬度;
width    組件的寬度;
height    組件高度;
bitmap    組件中的位圖;
image    組件中的圖片;
font    字體;
justify    組件中多行文本的對齊方式;
text    指定組件的文本;
value    指定組件被選中中關聯變量的值;
variable   指定組件所關聯的變量;
indicatoron 特殊控制參數,當為0時,組件會被繪制成按鈕形式;
textvariable 可變文本顯示,與StringVar等配合著用


五、listbox列表

列表常用于選擇選項。



這個比較簡單,沒什么好說的。


六、滑塊條,滾動條

1.滑塊條

一行代碼就能搞定了,也是非常簡單:



默認方向為垂直,只需將orient屬性設為horizontal(tk.HORIZONTAL )即可,也可設為垂直:orient="vertical"


2.滾動條

常和其他組件配套使用,比如列表框,多行文本框。安裝滾動條之前需要做兩件事情。

1.指定該組件的yscrollbarcommand參數為Scrollbar的set()方法

2.指定Scrollbar 的 command 參數為該組件的 yview() 方法

由于滾動條一般都是垂直方向,所以我們不改動他的方向。



可以看到,我們的滾動條和列表組件產生了聯系,滾動條滾動列表內容相應往下翻,如果你要想設置滾動條的位置,只需:

sl.set(0.5,1) #使滾動條始終保持在中間位置

滾動條和滑塊條一樣,都比較簡單,項目中用的也不是蠻多,總體來說比較簡單的組件。


七、畫布

平時會用于繪制各種曲線和位圖,canvas可以很輕松創建各種有趣的圖形圖像。下面來了解下

#初始化一個200x100的背景顏色為藍色的形狀
canvas = tk.Canvas(root, bg='blue', height=100, width=200)

#創建一個矩形,背景色為綠色,邊框線顏色為紅色,線寬為2,虛線長度為3,畫刷為gray12,
jx=canvas.create_rectangle(100,100,50,50,fill='green',outline='red',width=2,dash=3,stipple = 'gray12')

#繪制弧形 風格為pieslice(chord扇形,拋物線arc) 起始角度0 角度偏移量180
hx=canvas.create_arc(50, 100,140, 200,style='pieslice',start=0, extent=180)

#創建直線 坐標為100,100的長度為200x200的直線,一頭有箭頭(none無,last尾部,both兩端,箭頭形狀)
zx=canvas.create_line(100, 100, 200, 200,arrow='first',arrowshape='30 20 10')

#創建橢圓,背景色為red
y=canvas.create_oval(50, 100,140, 200, fill='red')

#創建多邊形 直角三角形
dbx=canvas.create_polygon((150,150,150,200,70,200),fill = 'red')

#創建文字 居中顯示
wz=canvas.create_text((10,10),text = 'Hello Text',anchor ='w')
canvas.select_from(wz,3) # 設置文本的選中開始位置
canvas.select_to(wz,7)# 設置文本的選中結束位置

#創建位圖,類型為error(info信息,question問題,hourglass沙漏)
canvas.create_bitmap((40,40),bitmap = 'error')

#創建gif
img= tk.PhotoImage(file='1.gif')
canvas.create_image(10, 10, anchor='nw', image=img)

#創建組件
bt =tk.Button(canvas,text='hello',command)
canvas.create_window((100,100),window=bt,anchor='w')

#將jx移動到另一區域
cv.coords(jx,(10,10,20,20))

#移動圖形右移20個px,再返回
canvas.move(jx,20,0)

#刪除圖形
canvas.delete(jx)

#添加綁定事件,只有點擊到矩形邊框才有效
canvas.tag_bind('jx','',command) #左鍵為1,右鍵為3,滾輪2

canvas繪圖還是比較強大的,以上的知識點差不多夠平時用了,可以看到:



八、下拉列表框

一般用于某個功能的配套選擇,這個部件在tkinter中的ttk模塊下,和其他的不同,所以我們導入ttk:

#打印下拉列表框的值
from tkinter import ttk
def function(*arg):
tprint(cb.get()) #獲取下拉列表框的值
cb=ttk.Combobox(root, width=12,state='readonly')#下拉列表框寬度為12 只讀
cb['values'] = ('請選擇-----','1','2','3','4') #設置下拉列表框的內容
cb.current(0) #將當前選擇狀態置為0,也就是第一項
cb.bind("<>",function) #綁定function函數,然后觸發事件
cb.pack()

注:下拉列表沒有command參數,但是他可以設置textvariable進行參數傳遞。



九、菜單欄,菜單按鈕,選項菜單

先說說我們熟知的菜單(Menu),它主要我們為了簡化軟件的使用而建立的,避免添加過多的控件。那么他是如何建立的了,請看:

1.下拉菜單

#創建菜單欄
m=tk.Menu(root)

#定義一個父菜單
file=tk.Menu(m,tearoff=False)

#將上面定義的父菜單命名為File,放在菜單欄中
m.add_cascade(label='文件', menu=file)

#在File中加入下拉菜單,并添加對應命令操作。
#如果點擊這些選項, 就會觸發相應的功能
file.add_command(label='新建',accelerator='Ctrl+N')
file.add_command(label='打開', accelerator='Ctrl+O')
file.add_command(label='保存', accelerator='Ctrl+S')

#添加一條分割線
file.add_separator()
file.add_command(label='退出',command=root.quit,accelerator='Ctrl+Q')


edit= tk.Menu(m,tearoff=False)
m.add_cascade(label='編輯', menu=edit)
edit.add_command(label='剪切',accelerator='Ctrl+X')
edit.add_command(label='復制',accelerator='Ctrl+C')
edit.add_command(label='粘貼',accelerator='Ctrl+V')

#二級菜單
s= tk.Menu(file,tearoff=False)
file.add_cascade(label='導入', menu=s)
s.add_command(label="模塊")
s.add_command(label="文本文件")

#三級菜單
z=tk.Menu(s,tearoff=False)
s.add_cascade(label='圖片',menu=z)
z.add_command(label="gif")
z.add_command(label="jpg")
z.add_command(label="png")
z.add_command(label="bmp")
root.configure(menu=m)



2.右鍵彈出菜單

在做這個之前我們要了解鼠標綁定事件愛你,因為右鍵彈出需要擊鍵,所以我們需要了解它。

既然是右鍵我們當然得綁定右鍵了:

root.bind("",function)

然后我們書寫綁定函數并把他綁定到當前對象中:

def function(event):
m.post(event.x_root, event.y_root) #可以替換菜單,變為其他菜單,比如說s,z

這樣就實現了右鍵彈出菜單的功能,是不是很簡單了。關于菜單的操作還有許多,不一一演示,下面請看:

#添加一個子菜單 coption為配置選項
add_cascade(option)

#添加一個切換按鈕 coption為配置選項
add_checkbutton(option)

#添加一個功能按鈕 coption為配置選項
add_command(option)

#添加一個單選按鈕 coption為配置選項
add_radiobutton(option)

#添加一個分割線
add_separator()

#刪除index1 到 index2之間的選項
delete(index1,index2)

#獲取菜單某一項的屬性值
entrycget(index,coption)

#重新配置菜單中某項的屬性
entryconfigure(index,option)

#返回參數位置對應的選項索引
index(i)

#在指定位置插入一個子菜單
insert_cascade(index,option)

#在指定位置插入一個切換按鈕
insert_checkbutton(index,option)

#在指定位置插入一個功能按鈕
insert_command(index,option)

#在指定位置插入一個單選按鈕
insert_radiobutton(index,option)

#在指定位置插入一個分割線
insert_separator(index)

#代碼手動調用一次某個選項
invoke(index)

#在窗口指定位置彈出菜單
post(x,y)

#獲取某個選項的類型
type(index)

#獲取某個選項距離菜單頂部的偏移量
yposition(n)

#添加一個選項 可以是功能按鈕,切換按鈕,單選按鈕或子菜單,由類型確認
#類型可選 cascade checkbutton command radiobutton separator
add(kind,option)


3.菜單按鈕

它是與菜單相關聯的按鈕,可放在任意位置,下面來創建一個看看:

def show(): #觸發事件
print("hello")
mb = tk.Menubutton(root,text="python",relief=tk.RAISED) #菜單按鈕配置
mb.pack()
file = tk.Menu(mb,tearoff=0) #添加菜單
file.add_checkbutton(label="打開",command=show) #添加確認按鈕到菜單中
file.add_command(label="保存",command=show) #添加保存命令
file.add_separator() #添加分隔線
file.add_command(label="退出",command=root.quit) #添加退出命令
mb.configure(menu=file) #將菜單按鈕配置添加到主菜單中



4.選項菜單

這個組件在一定程度上好比下拉菜單,又如listbox,下面我們來看下吧:

var =tk.StringVar()
var.set("編程語言") #設置菜單初始值
o = tk.OptionMenu(root,var,"python","php","c#","c++") #將菜單選項加入到菜單中去
o.pack()



是不是覺得菜單比較有趣,通過對菜單的認識你也可以做一個記事本或者其他小工具,其他方法如下:

    tearoff          分窗,0為在原窗,1為點擊分為兩個窗口,也可以是 True,False
bg,fg    背景,前景
borderwidth   邊框寬度
font 字體
activebackgound 點擊時背景,有activeforeground,activeborderwidth,disabledforeground
cursor 選中菜單選項時的光標形狀
post 右鍵菜單
selectcolor   選中時背景
takefocus 使用 Tab 鍵獲取按鈕的焦點
title 標題
type 類型
relief tttt樣式"sunken","raised","groove","ridge" "flat"

方法:
m.add_cascade 添加子選項
m.add_command 添加命令(label參數為顯示內容)
m.add_separator 添加分隔線
m.add_checkbutton 添加確認按鈕
delete 刪除


十、框架

又稱窗口,它是在原先的基礎上又創建一個窗口,一般可用于多個窗戶交互,如聊天,打游戲,我們來看下:

fm = tk.Frame(root)  #在root上創建一個frame
fm.pack() #添加進去

#在剛剛創建的frame上創建兩個frame
f1= tk.Frame(fm)
f2= tk.Frame(fm)

#添加部件
f1.pack()
f2.pack()

分別給兩個frame添加兩個部件并且顏色不同,以便于區分
tk.Label(f1, text='標簽一', bg='green').pack()
tk.Button(f1, text='按鈕一', bg='green').pack()
tk.Label(f2, text='標簽二', bg='red').pack()
tk.Button(f2, text='按鈕二', bg='red').pack()



我們可以簡單的理解為在主窗口中放置了一個父窗口,然后這個父窗口又增添了兩個子窗口,每個子窗口都創建了兩個部件。這個部件在我們進行交互時還是挺有用的。


十一、彈窗,輸入

1.messagebox

接下來我們要說的就是彈窗了,我們一般需要提示的地方都需要窗口,還有確認返回什么的,下面來看看:

要想正常使用這些功能,我們需要先引入一個模塊messagebox(消息盒子),彈窗我們可以把它分為以下幾種:

注意先必須導入messagebox:

from tkinter  import messagebox
1.提示信息
messagebox.showinfo(title='提示',message='你需要這么做')
2.警告
messagebox.showwarning(title='警告',message='你不能這么做')
3.錯誤
messagebox.showerror(title='錯誤',message='你做錯了')

前面幾個都是提示彈窗,下面介紹集中與用戶交互,可以讓用戶選擇的彈窗:


4.詢問選擇
messagebox.askquestion(title='選擇',message='你是否這樣做') 
5.確定或取消
messagebox.askokcancel(title='選擇',message='你是否這樣做') 
6.是,否
messagebox.askyesno(title='選擇',message='你是否這樣做')
7.重試,取消
messagebox.askretrycancel(title='選擇',message='你是否這樣做')

若是你想把這所有的類型集中到一個函數中設置了,也有,他就是_show()函數,用法如下:

messagebox._show函數的控制參數:
default 消息框按鈕
icon 消息框圖標
message    消息框所顯示的消息
parent 消息框的父組件
title 標題
type 類型


2.simpledialog

為了提高用戶的交互,我們需要設置一些方框供用戶選擇,simpledialog是你必不可少的,來看下:

導入模塊:

from tkinter import simpledialog

simpledialog提供三種類型輸入,即字符串 整數 浮點。我們來寫下:

simpledialog.askinteger(title='顯示',prompt='輸入',initialvalue='12')

總體來說相當簡單,沒什么可說的。


十二、文件對話框

用于打開文件對話框,選擇文件或者文件夾,下面看看它有哪些用法吧:

首先我們先導入選擇文件模塊:

from tkinter import filedialog

1.返回文件名

filedialog.askopenfilename()

2.返回文件流對象

filedialog.askopenfile()

3.返回多個文件流對象

filedialog.askopenfiles()

4.返回多個文件名對象

filedialog.askopenfilenames()

5.返回目錄名

filedialog.askdirectory()

6.返回文件流并創建文件

filedialog.asksaveasfile()

7.返回文件名保存

filedialog.asksaveasfilename()

8.打開文件對話框顯示當前目錄所有文件文件夾

filedialog.LoadFileDialog(root).go()

9.保存文件對話框

filedialog.SaveFileDialog(root).go()


十三、樹型列表

他就好像一棵樹一樣,將他的子元素包裹在里面,同樣他的模塊也是在ttk里面,請看:

from tkinter import ttk
t = ttk.Treeview(root) #加載樹型控件
t.pack()
n=t.insert('',0,text="hello",values=("1")) #插入一個值到控件中
n1=t.insert(n,1,text="cq",values=("2")) #插入一個屬于他的子元素也就是二級元素
n2=t.insert(n,1,text="sc",values=("2"))
t.insert(n1,2,text='fd',values=("3")) #插入一個屬于他的三級元素
t.insert(n1,2,text='we',values=("3"))
t.insert(n2,2,text='1',values=("3"))
t.insert(n2,2,text='2',values=("3"))



就這樣可以一直循環插入,這樣就方便咱們列出大型項目的目錄了,你比如說磁盤目錄就可以用這個。


十四、顏色對話框

選擇顏色時使用,豐富的色彩可以讓你處理圖片畫圖,非常好用:

from tkinter  import colorchooser #導入模塊
colorchooser.askcolor() #打開顏色選擇對話框


十五、組件排版

基本上所有的組件我們都介紹完了,相信大家通過對這章的學習應該對tkinter有了個深入的了解。

除了組件的用法之外,最重要的莫過于組件的排版了,下面我們來說一下,如何讓組件放對位置。

組件有三種排列方式:pack grid place.

1.pack

他是按照上下左右的方式來排列的,例如:

tk.Label(root, text='1').pack(side='top')#上
tk.Label(root, text='2').pack(side='bottom')#下
tk.Label(root, text='3').pack(side='left')#左
tk.Label(root, text='4').pack(side='right')#右

而且它還可以設置組件填充方式,如:

tk.Label(root, text='1').pack(fill='y')    #垂直填充
tk.Label(root, text='2').pack(fill='x') #水平填充
tk.Label(root, text='3').pack(fill='both') #水平垂直填充
tk.Label(root, text='4').pack(fill='none') #不填充


2.grid

它是一種網格布局,劃分為幾行幾列的樣子。所以他一般就是設置行,列。例如:

tk.Label(root, text='1').grid(row=3, column=3)#第三行第三列插入一個1

還可以設置組件所跨越的行列數和內外部間隔距離:

tk.Label(root, text='1').grid(row=3, column=3,rowspan=3,ipadx=6)#跨3行單元格距離6
tk.Label(root, text='2').grid(row=4, column=4,columnspa=3,pady=8)#跨3列邊框距離8


3.place

這是一種最簡單靈活的布局,使用組件坐標來放置組件的位置。

tk.Label(root,text='43').place(x=100,y=200,width=10,height=5) #距離左邊100,上邊200寬高為10X5


十六、鼠標鍵盤事件

講完布局接著該說說最重要的東西了,綁定事件,沒有這個東西組件都是沒有靈魂的。我總結了以下幾點:

bind(sequence,func,add)
bind_class(className,sequence,func,add)
bind_all(sequence,func,add)
事件參數:  
sequence         所綁定的事件;如‘’寓意為ctrl+N鍵 或者 右鍵
func        所綁定的事件處理函數;
add        可選參數,為空字符或‘+’;
className          所綁定的類;


ttttt鼠標鍵盤事件
   鼠標左鍵按下,2表示中鍵,3表示右鍵;
  同上;
    鼠標左鍵釋放;
   按住鼠標左鍵移動;
   雙擊左鍵;
   鼠標指針進入某一組件區域;
   鼠標指針離開某一組件區域;
     滾動滾輪;
      按下A鍵,A可用其他鍵替代;
    同時按下alt和A;alt可用ctrl和shift替代;
   快速按兩下A;
    大寫狀態下按A;


ttttt窗口事件
Activate      當組件由不可用轉為可用時觸發;
Configure      當組件大小改變時觸發;
Deactivate       當組件由可用轉變為不可用時觸發;
Destroy      當組件被銷毀時觸發;
Expose      當組件從被遮擋狀態中暴露出來時觸發;
Unmap       當組件由顯示狀態變為隱藏狀態時觸發;
Map      當組件由隱藏狀態變為顯示狀態時觸發;
FocusIn       當組件獲得焦點時觸發;
FocusOut       當組件失去焦點時觸發;
Property      當窗體的屬性被刪除或改變時觸發;
Visibility     當組件變為可視狀態時觸發;



ttttt響應事件
event對象(def function(event)):
char        按鍵字符,僅對鍵盤事件有效;
keycode         按鍵名,僅對鍵盤事件有效;
keysym         按鍵編碼,僅對鍵盤事件有效;
num       鼠標按鍵,僅對鼠標事件有效;
type      所觸發的事件類型;
widget      引起事件的組件;
width,heigh       組件改變后的大小,僅Configure有效;
x,y         鼠標當前位置,相對于窗口;
x_root,y_root       鼠標當前位置,相對于整個屏幕


好了,以上就是我學習tkinter所總結的所有知識點,可能還有部分地方未補充清楚,希望大家多多指正。




小編推薦:欲學習電腦技術、系統維護、網絡管理、編程開發和安全攻防等高端IT技術,請 點擊這里 注冊賬號,公開課頻道價值萬元IT培訓教程免費學,讓您少走彎路、事半功倍,好工作升職加薪!

本文出自:https://www.toutiao.com/a6828537630318133763/

免責聲明:本站系公益性非盈利IT技術普及網,本文由投稿者轉載自互聯網的公開文章,文末均已注明出處,其內容和圖片版權歸原網站或作者所有,文中所述不代表本站觀點,若有無意侵權或轉載不當之處請從網站右下角聯系我們處理,謝謝合作!


鮮花

握手

雷人

路過

雞蛋

相關閱讀

最新評論

 最新
返回頂部
洗衣店赚钱联系澳洁 广东11选五5彩吧助手 河北快3. 昨天福彩3d开奖结果 河北快3今天的开奖 辽宁体育彩票11选五 广东快乐10分开奖结果 股票000001上 可买贵州十一选五的平台 彩票玩法双色球 怎么开通股票账户