成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python圖形用戶界GUI大解密(下篇)

開發 后端
這篇文章緊接著上篇文章繼續圍繞tkinter知識進行展開。希望能夠幫助到你!

[[403616]]

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

十、框架

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

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

 

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

十一、彈窗,輸入

1.messagebox

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

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

注意先必須導入messagebox:

  1. from tkinter  import messagebox 

1.提示信息

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

2.警告

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

3.錯誤

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

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

4.詢問選擇

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

5.確定或取消

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

6.是,否

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

7.重試,取消

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

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

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

2.simpledialog

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

導入模塊:

  1. from tkinter import simpledialog 

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

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

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

十二、文件對話框

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

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

  1. from tkinter import filedialog 

1.返回文件名

  1. filedialog.askopenfilename() 

2.返回文件流對象

  1. filedialog.askopenfile() 

3.返回多個文件流對象

  1. filedialog.askopenfiles() 

4.返回多個文件名對象

  1. filedialog.askopenfilenames() 

5.返回目錄名

  1. filedialog.askdirectory() 

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

  1. filedialog.asksaveasfile() 

7.返回文件名保存

  1. filedialog.asksaveasfilename() 

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

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

9.保存文件對話框

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

十三、樹型列表

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

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

 

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

十四、顏色對話框

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

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

十五、組件排版

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

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

組件有三種排列方式: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')#右 

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

  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

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

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

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

  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

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

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

十六、鼠標鍵盤事件

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

  1. bind(sequence,func,add
  2. bind_class(className,sequence,func,add
  3. bind_all(sequence,func,add
  4. 事件參數:   
  5. sequence              所綁定的事件;如‘<Control-n>’寓意為ctrl+N鍵 或者<Button-3> 右鍵 
  6. func                   所綁定的事件處理函數; 
  7. add                    可選參數,為空字符或‘+’; 
  8. className             所綁定的類; 
  9.  
  10.  
  11. 鼠標鍵盤事件 
  12.     <Button-1>            鼠標左鍵按下,2表示中鍵,3表示右鍵; 
  13.     <ButtonPress-1>        同上; 
  14.     <ButtonRelease-1>    鼠標左鍵釋放; 
  15.     <B1-Motion>           按住鼠標左鍵移動; 
  16.     <Double-Button-1>     雙擊左鍵; 
  17.     <Enter>               鼠標指針進入某一組件區域; 
  18.     <Leave>               鼠標指針離開某一組件區域; 
  19.     <MouseWheel>         滾動滾輪; 
  20.     <KeyPress-A>         按下A鍵,A可用其它鍵替代; 
  21.     <Alt-KeyPress-A>      同時按下alt和A;alt可用ctrl和shift替代; 
  22.     <Double-KeyPress-A>    快速按兩下A; 
  23.     <Lock-KeyPress-A>     大寫狀態下按A; 
  24.      
  25.     
  26. 窗口事件 
  27.     Activate             當組件由不可用轉為可用時觸發; 
  28.     Configure            當組件大小改變時觸發; 
  29.     Deactivate          當組件由可用轉變為不可用時觸發; 
  30.     Destroy              當組件被銷毀時觸發; 
  31.     Expose              當組件從被遮擋狀態中暴露出來時觸發; 
  32.     Unmap              當組件由顯示狀態變為隱藏狀態時觸發; 
  33.     Map                  當組件由隱藏狀態變為顯示狀態時觸發; 
  34.     FocusIn              當組件獲得焦點時觸發; 
  35.     FocusOut            當組件失去焦點時觸發; 
  36.     Property             當窗體的屬性被刪除或改變時觸發; 
  37.     Visibility           當組件變為可視狀態時觸發; 
  38.  
  39. 響應事件 
  40. event對象(def function(event)): 
  41.     char                按鍵字符,僅對鍵盤事件有效; 
  42.     keycode            按鍵名,僅對鍵盤事件有效; 
  43.     keysym             按鍵編碼,僅對鍵盤事件有效; 
  44.     num                鼠標按鍵,僅對鼠標事件有效; 
  45.     type                 所觸發的事件類型; 
  46.     widget               引起事件的組件; 
  47.     width,heigh        組件改變后的大小,僅Configure有效; 
  48.     x,y                鼠標當前位置,相對于窗口; 
  49.     x_root,y_root       鼠標當前位置,相對于整個屏幕 

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

 

責任編輯:姜華 來源: Python爬蟲與數據挖掘
相關推薦

2021-06-01 09:02:06

PythonClassPython基礎

2012-02-01 08:56:32

2016-07-12 10:09:13

OpenManage大

2016-06-20 15:36:01

OpenManage大

2017-12-14 09:35:10

58速運訂單調度

2025-02-08 14:03:25

2023-11-29 07:30:08

Python用戶界面

2025-02-24 10:17:48

2022-01-26 00:02:00

PythonGUI界面

2024-09-24 10:00:55

2024-10-28 16:03:24

2014-02-10 10:13:41

VirtualBox虛擬機

2021-06-27 17:12:27

PythonGUI圖形界面

2024-06-26 12:17:48

深度學習GUI

2010-06-17 16:06:18

串口協議

2011-01-18 17:47:35

2010-09-07 12:06:46

PPPoE協議

2017-11-22 12:40:02

PythonGUI框架

2011-05-17 14:38:52

身份認證校園網

2009-03-10 08:43:38

Erwise圖形瀏覽器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一级大黄| 狠狠爱视频 | 日韩在线免费播放 | 色综合久久久久 | 成人网av | 国产亚洲欧美在线 | 日韩高清一区 | 亚洲欧美日韩在线一区二区 | 国产一二区免费视频 | 国产在线第一页 | 激情免费视频 | 国产一区二区三区 | 免费黄色录像视频 | 国产精品色 | 在线免费观看黄色 | 91精品一区二区三区久久久久 | 国产一区二区不卡 | 国产一区二区三区在线视频 | 九九久久国产 | 久久一区视频 | 久久久国产一区二区三区四区小说 | 少妇一区在线观看 | 一区二区三区四区在线 | 一区二区三区四区视频 | 亚洲欧美另类在线观看 | 精品无码久久久久久久动漫 | 在线观看中文字幕亚洲 | 日韩一区在线播放 | 亚洲精品在线视频 | 亚洲国产精品久久 | 91国在线高清视频 | 在线观看视频91 | 欧美综合国产精品久久丁香 | 久久国产精品一区 | 久久成人人人人精品欧 | 中国黄色在线视频 | 亚洲精品成人网 | 色香婷婷 | a国产视频| 国产精品毛片一区二区三区 | 日本在线免费观看 |