前言
我們常見的程序分為基于控制臺的程序和基于圖形界面的程序
基于控制臺的程序常見例如:CMD終端窗口進行命令與程序交互
舉個栗子,在命令窗口操作adb
基于圖形界面的程序常見如:畫圖軟件、辦公軟件、IDE等等
舉個栗子,電腦里可視化的計算器
我們現(xiàn)在的程序都是基于圖形界面的,可以讓用戶快速上手操作學習,降低學習計算機的成本
因此,本期我們將學習 GUI (Graphic User Interface)圖形用戶界面編程。
在 Python 中為我們提供了豐富的組件,可以快速的實現(xiàn)使用圖形界面和用戶交互。
????廢話不多說,我們來學習GUI編程相關(guān)的知識吧,Let's go~
1. GUI編程概述
GUI 編程類似于"搭積木",將一個個組件(Widget)放到窗口中。
我們通過畫圖可以看到它的組成部分分為:
①:畫圖菜單欄:文件/主頁/查看這些都是按鍵組件
②:畫圖工具欄:粘貼、圖像、顏色框這些都不同組件,統(tǒng)一地放到②容器里面顯示
③:畫圖編輯區(qū):由畫布這個組件組成
④:畫圖底部滑動條:左右滑動條組件組成
⑤:畫圖右邊滑動條:上下滑動條組件組成
?:以上所有組件通過布局管理器進行排布管理,統(tǒng)一放到窗口的組件中
?:最后我們?yōu)槊總€組件添加事件處理,做出不同的指令,組成完整的程序
因此,圖形界面的程序中由格式樣式的組件組成的,GUI編程就是使用Python模塊提供給的組件,來進行組合搭建。
2. 常用的GUI庫
| 庫名 | 作用 |
|---|---|
| Tkinter | Tk interface 是 Python 標準GUI庫,支持跨平臺的GUI程序開發(fā),tkinter適合小型的GUI程序編寫,也特別剛?cè)腴T的同學進行GUI編程學習掌握 |
| wxPython | wxPython 是比較流行的GUI庫,適合大型應(yīng)用程序開發(fā),功能強于tkinter 整體設(shè)計框架類似與MFC(Microsoft Foundation Classess微軟基礎(chǔ)類庫),使用C++模塊 |
| PyQT | Qt 是一種開源的GUI庫,適合大型GUI程序開發(fā),PyQT是Qt工具包標準的Python實現(xiàn),我們可以使用Qt Desginer 界面設(shè)計器快速開發(fā)GUI應(yīng)用程序 |
| Jython | Jython 程序可以Java集成。Jython擁有依賴的C語言模塊,使用的是Java的模塊 |
| Pyforms | Pyforms 是一個用于開發(fā)GUI應(yīng)用程序Python2.7/3.X 多運行環(huán)境框架,代碼重用性高 |
| Kivy | Kivy 是一個開源庫,能夠讓使相同代碼創(chuàng)建程序?qū)崿F(xiàn)跨平臺運行,支持創(chuàng)新型用戶界面開發(fā) |
?? 我們目前重點學習Tkinter庫,打好GUI編程基礎(chǔ)
?? Tkinter官方網(wǎng)站:https://docs.python.org/3.7/library/tk.html
Tkinter學習網(wǎng)站:http://effbot.org/tkinterbook/
3. 初試GUI編程
GUI編程的基礎(chǔ)是學習tkinter模塊,主要包括如下步驟:
-
創(chuàng)建應(yīng)用程序主窗口對象(根窗口)
(1)通過類tkinter無參構(gòu)造函數(shù)
from tkinter import* root = Tk() -
在主窗口中,添加各種可視化組件。如按鈕(button),文本框(label)
but1 = Button(root) but1["text"] = "add"
-
通過幾何布局管理器,管理組件的大小和位置
but1.pack() -
事件處理
(1)定義組件相關(guān)事件
def myadd(e):
messagebox.showinfo("Message","添加成功")
print("Success")
(2)通過綁定事件處理,響應(yīng)用戶操作觸發(fā)的事件(比如:單擊、雙擊等)
but1.bind("<Button-1>",myadd)
?? 重要說明:
-
我們創(chuàng)建窗口,必須要調(diào)用mainloop(),進入事件循環(huán)
root.mainloop() -
事件處理格式
<[modifier-]…type[-detail]>
-
常用事件處理
事件類型 作用 單擊鼠標左鍵 <Button-1>單擊鼠標右鍵 <Button-3>向上滾動滑輪 <Button-4>向下滾動滑輪 <Button-5>鼠標左鍵雙擊 <Double-Button-1>鼠標中鍵雙擊 <Double-Button-2>鼠標右鍵雙擊 <Double-Button-3>鼠標左鍵釋放 <ButtonRelease-1>鼠標右鍵釋放 <ButtonRelease-3>左鍵拖動 <B1-Motion>右鍵拖動 <B3-Motion>鼠標進入控件 <Enter>鼠標移出控件 <Leave>
- ??以上程序完成后,我們就創(chuàng)建一個小窗口包含一個添加按鍵如下
-
點擊add按鍵,運行效果如下
image.png
總結(jié)
本期,我們學習GUI圖形用戶界面編程內(nèi)容,可以通過 Python 提供的豐富的組件,快速實現(xiàn)使用圖形界面和用戶交互。
GUI提供豐富的組件庫,讓我們在進行編程時類似于"搭積木"形式快速完成用戶交互界面
后面我們將深入學習Python提供的組件內(nèi)容,畫出漂亮的圖像界面,提高我們程序使用體驗。
以上是本期內(nèi)容,歡迎大佬們點贊評論指正,下次見~?( ′???` )比心????????????