日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Python圖形用戶界GUI大解密(下篇)

上篇文章我們主要介紹了tkinter的安裝、基本部件、下拉菜單、畫布等內(nèi)容,Python圖形用戶界GUI大解密(上篇),這篇文章緊接著上篇文章繼續(xù)圍繞tkinter知識(shí)進(jìn)行展開。

創(chuàng)新互聯(lián)長(zhǎng)期為近千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為共和企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)共和網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

十、框架

又稱窗口,它是在原先的基礎(chǔ)上又創(chuàng)建一個(gè)窗口,一般課用于多個(gè)窗戶交互,如聊天,打游戲,我們來看下:

 
 
 
 
  1. fm = tk.Frame(root)  #在root上創(chuàng)建一個(gè)frame 
  2. fm.pack() #添加進(jìn)去 
  3.   
  4. #在剛剛創(chuàng)建的frame上創(chuàng)建兩個(gè)frame 
  5. f1= tk.Frame(fm) 
  6. f2= tk.Frame(fm) 
  7.   
  8. #添加部件 
  9. f1.pack() 
  10. f2.pack() 
  11.  
  12. 分別給兩個(gè)frame添加兩個(gè)部件并且顏色不同,以便于區(qū)分 
  13. tk.Label(f1, text='標(biāo)簽一', bg='green').pack() 
  14. tk.Button(f1, text='按鈕一', bg='green').pack() 
  15. tk.Label(f2, text='標(biāo)簽二', bg='red').pack() 
  16. tk.Button(f2, text='按鈕二', bg='red').pack() 

我們可以簡(jiǎn)單的理解為在主窗口中放置了一個(gè)父窗口,然后這個(gè)父窗口又增添了兩個(gè)子窗口,每個(gè)子窗口都創(chuàng)建了兩個(gè)部件。這個(gè)部件在我們進(jìn)行交互時(shí)還是挺有用的。

十一、彈窗,輸入

1.messagebox

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

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

注意先必須導(dǎo)入messagebox:

 
 
 
 
  1. from tkinter  import messagebox 

1.提示信息

 
 
 
 
  1. messagebox.showinfo(title='提示',message='你需要這么做') 

2.警告

 
 
 
 
  1. messagebox.showwarning(title='警告',message='你不能這么做') 

3.錯(cuò)誤

 
 
 
 
  1. messagebox.showerror(title='錯(cuò)誤',message='你做錯(cuò)了') 

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

4.詢問選擇

 
 
 
 
  1. messagebox.askquestion(title='選擇',message='你是否這樣做') 

5.確定或取消

 
 
 
 
  1. messagebox.askokcancel(title='選擇',message='你是否這樣做') 

6.是,否

 
 
 
 
  1. messagebox.askyesno(title='選擇',message='你是否這樣做') 

7.重試,取消

 
 
 
 
  1. messagebox.askretrycancel(title='選擇',message='你是否這樣做') 

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

 
 
 
 
  1. messagebox._show函數(shù)的控制參數(shù): 
  2. default         消息框按鈕 
  3. icon            消息框圖標(biāo) 
  4. message        消息框所顯示的消息 
  5. parent          消息框的父組件 
  6. title           標(biāo)題 
  7. type            類型 

2.simpledialog

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

導(dǎo)入模塊:

 
 
 
 
  1. from tkinter import simpledialog 

simpledialog提供三種類型輸入,即字符串 整數(shù) 浮點(diǎn)。我們來寫下:

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

總體來說相當(dāng)簡(jiǎn)單,沒什么可說的。

十二、文件對(duì)話框

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

首先我們先導(dǎo)入選擇文件模塊:

 
 
 
 
  1. from tkinter import filedialog 

1.返回文件名

 
 
 
 
  1. filedialog.askopenfilename() 

2.返回文件流對(duì)象

 
 
 
 
  1. filedialog.askopenfile() 

3.返回多個(gè)文件流對(duì)象

 
 
 
 
  1. filedialog.askopenfiles() 

4.返回多個(gè)文件名對(duì)象

 
 
 
 
  1. filedialog.askopenfilenames() 

5.返回目錄名

 
 
 
 
  1. filedialog.askdirectory() 

6.返回文件流并創(chuàng)建文件

 
 
 
 
  1. filedialog.asksaveasfile() 

7.返回文件名保存

 
 
 
 
  1. filedialog.asksaveasfilename() 

8.打開文件對(duì)話框顯示當(dāng)前目錄所有文件文件夾

 
 
 
 
  1. filedialog.LoadFileDialog(root).go() 

9.保存文件對(duì)話框

 
 
 
 
  1. filedialog.SaveFileDialog(root).go() 

十三、樹型列表

它就好像一棵樹一樣,將它的子元素包裹在里面,同樣它的模塊也是在ttk里面,請(qǐng)看:

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

就這樣可以一直循環(huán)插入,這樣就方便咱們列出大型項(xiàng)目的目錄了,你比如說磁盤目錄就可以用這個(gè)。

十四、顏色對(duì)話框

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

 
 
 
 
  1. from tkinter  import colorchooser #導(dǎo)入模塊 
  2. colorchooser.askcolor() #打開顏色選擇對(duì)話框 

十五、組件排版

基本上所有的組件我們都介紹完了,相信大家通過對(duì)這章的學(xué)習(xí)應(yīng)該對(duì)tkinter有了個(gè)深入的了解。

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

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

1.pack

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

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

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

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

2.grid

它是一種網(wǎng)格布局,劃分為幾行幾列的樣子。所以它一般就是設(shè)置行,列。例如:

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

還可以設(shè)置組件所跨越的行列數(shù)和內(nèi)外部間隔距離:

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

3.place

這是一種最簡(jiǎn)單靈活的布局,使用組件坐標(biāo)來放置組件的位置。

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

十六、鼠標(biāo)鍵盤事件

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

 
 
 
 
  1. bind(sequence,func,add) 
  2. bind_class(className,sequence,func,add) 
  3. bind_all(sequence,func,add) 
  4. 事件參數(shù):   
  5. sequence              所綁定的事件;如‘’寓意為ctrl+N鍵 或者 右鍵 
  6. func                   所綁定的事件處理函數(shù); 
  7. add                    可選參數(shù),為空字符或‘+’; 
  8. className             所綁定的類; 
  9.  
  10.  
  11. 鼠標(biāo)鍵盤事件 
  12.                 鼠標(biāo)左鍵按下,2表示中鍵,3表示右鍵; 
  13.             同上; 
  14.         鼠標(biāo)左鍵釋放; 
  15.                按住鼠標(biāo)左鍵移動(dòng); 
  16.          雙擊左鍵; 
  17.                    鼠標(biāo)指針進(jìn)入某一組件區(qū)域; 
  18.                    鼠標(biāo)指針離開某一組件區(qū)域; 
  19.              滾動(dòng)滾輪; 
  20.              按下A鍵,A可用其它鍵替代; 
  21.           同時(shí)按下alt和A;alt可用ctrl和shift替代; 
  22.         快速按兩下A; 
  23.          大寫狀態(tài)下按A; 
  24.      
  25.     
  26. 窗口事件 
  27.     Activate             當(dāng)組件由不可用轉(zhuǎn)為可用時(shí)觸發(fā); 
  28.     Configure            當(dāng)組件大小改變時(shí)觸發(fā); 
  29.     Deactivate          當(dāng)組件由可用轉(zhuǎn)變?yōu)椴豢捎脮r(shí)觸發(fā); 
  30.     Destroy              當(dāng)組件被銷毀時(shí)觸發(fā); 
  31.     Expose              當(dāng)組件從被遮擋狀態(tài)中暴露出來時(shí)觸發(fā); 
  32.     Unmap              當(dāng)組件由顯示狀態(tài)變?yōu)殡[藏狀態(tài)時(shí)觸發(fā); 
  33.     Map                  當(dāng)組件由隱藏狀態(tài)變?yōu)轱@示狀態(tài)時(shí)觸發(fā); 
  34.     FocusIn              當(dāng)組件獲得焦點(diǎn)時(shí)觸發(fā); 
  35.     FocusOut            當(dāng)組件失去焦點(diǎn)時(shí)觸發(fā); 
  36.     Property             當(dāng)窗體的屬性被刪除或改變時(shí)觸發(fā); 
  37.     Visibility           當(dāng)組件變?yōu)榭梢暊顟B(tài)時(shí)觸發(fā); 
  38.  
  39. 響應(yīng)事件 
  40. event對(duì)象(def function(event)): 
  41.     char                按鍵字符,僅對(duì)鍵盤事件有效; 
  42.     keycode            按鍵名,僅對(duì)鍵盤事件有效; 
  43.     keysym             按鍵編碼,僅對(duì)鍵盤事件有效; 
  44.     num                鼠標(biāo)按鍵,僅對(duì)鼠標(biāo)事件有效; 
  45.     type                 所觸發(fā)的事件類型; 
  46.     widget               引起事件的組件; 
  47.     width,heigh        組件改變后的大小,僅Configure有效; 
  48.     x,y                鼠標(biāo)當(dāng)前位置,相對(duì)于窗口; 
  49.     x_root,y_root       鼠標(biāo)當(dāng)前位置,相對(duì)于整個(gè)屏幕 

好了,以上就是我學(xué)習(xí)tkinter所總結(jié)的所有知識(shí)點(diǎn),可能還有部分地方未補(bǔ)充清楚,希望大家多多指正。


標(biāo)題名稱:Python圖形用戶界GUI大解密(下篇)
當(dāng)前URL:http://www.5511xx.com/article/cccgcpj.html