Python GUI編程認識

前言

我們常見的程序分為基于控制臺的程序基于圖形界面的程序

基于控制臺的程序常見例如: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模塊,主要包括如下步驟:

  1. 創(chuàng)建應(yīng)用程序主窗口對象(根窗口)

    (1)通過類tkinter無參構(gòu)造函數(shù)

    from tkinter import*
    
    root = Tk()
    
  2. 在主窗口中,添加各種可視化組件。如按鈕(button),文本框(label)

    but1 = Button(root)
    
    but1["text"] = "add"
    
    
  1. 通過幾何布局管理器,管理組件的大小和位置

    but1.pack()
    
  2. 事件處理

    (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)容,歡迎大佬們點贊評論指正,下次見~?( ′???` )比心????????????

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容