亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

基于Python的GUI圖形用戶界面編程詳細(xì)講解

 更新時間:2022年12月29日 09:24:56   作者:無限囂張(菜菜)  
GUI圖形用戶界面編程,我們可以通過python提供的豐富的組件,快速的實現(xiàn)使用圖形的界面和用戶交互, GUI編程類似于“搭積?”,將?個個組件(Widget)放到窗?中,這篇文章主要給大家介紹了基于Python的GUI圖形用戶界面編程的相關(guān)資料,需要的朋友可以參考下

前言    

在最早程序的設(shè)計中,程序和用戶的交互都是通過控制臺來完成的,而GUI(Graphics User Interface),即圖形用戶編程,是Python 所提供的一個豐富的組件,可以快速的實現(xiàn)使用圖形界面和用戶交互。

常用的GUI庫

1.Tkinter

tkinter(TK interface)是Python內(nèi)置的標(biāo)準(zhǔn)GUI庫,支持跨平臺的GUI程序開發(fā),tkinter 適合小型的GUI程序編寫,也特別適合初學(xué)者學(xué)習(xí)GUI編程。

2.wxPython

wxPython是比較流行的GUI庫,適合大型應(yīng)用程序開發(fā),功能強于tkinter,整體設(shè)計框架類似于MFC(Microsoft Foundation Classes 微軟基礎(chǔ)類庫)。

3.PyQT

Qt是一種開源的GUI庫,適合大型GUI程序開發(fā),PyQT是Qt工具包標(biāo)準(zhǔn)的Python實現(xiàn),我們可以使用Qt Dseginer 界面設(shè)計器快速開發(fā)GUI應(yīng)用程序。

基于tkinter模塊創(chuàng)建GUI程序步驟

1.創(chuàng)建應(yīng)用程序主窗口對象——通過類Tk的無參構(gòu)造函數(shù)

from tkinter import *
from tkinter import messagebox
 
root = Tk()

2.在主窗口中,添加各種可視化組件,比如:按鈕(Button) 文本框(Label)等。

btn01 = Button(root)
btn01["text"] = "創(chuàng)作不易,點個贊再走唄"

3.通過幾何布局管理器,管理組件的大小和位置

btn01.pack()

4.事件處理

通過綁定事件處理程序,響應(yīng)用戶操作所觸發(fā)的事件(比如:單擊、雙擊等)

def dianzai(e):
    messagebox.showinf("Message","點個贊,讓你關(guān)注我")
    print("點一個贊")
    
btn01.bind("<Button>",dainzan)

主窗口設(shè)置

主窗口位置和大小

通過geometry(wxh +/- x +/- y)進行設(shè)置,w為寬度,h為高度。+x表示距屏幕左邊的距離,-x表示距屏幕右邊的距離,+y表示屏幕上邊的距離,-y表示屏幕下邊的距離。表示寬度500,高度300,距左邊100個像素,距上邊100個像素。

root.title = ("來點贊呀")   # 建立標(biāo)題
root.geometry("500x300+100+100")

基于上述功能,代碼實現(xiàn)如下:

from tkinter import *
from tkinter import messagebox
 
root = Tk()  # 創(chuàng)建主窗口
root.title = ("來點贊呀")   # 建立標(biāo)題欄
root.geometry("500x300+100+100")
btn01 = Button(root)  # 建立一個btn01對象設(shè)置,將窗口放進去
 
btn01["text"] = "創(chuàng)作不易,點個贊再走唄"
btn01.pack()  # 調(diào)用布局管理器,將組件對象合理的放入窗口中
 
 
def dian_zan(e):  # e 封裝的事件對象
    messagebox.showinfo("Message", "點個贊")
    print("點個贊")
 
 
btn01.bind("<Button>", dian_zan)  # 綁定事件
 
root.mainloop()  # 調(diào)用組件的mainloop()方法,進入事件循環(huán)

顯示如下:

GUI編程整體描述 

圖形用戶界面是由一個個組件組成的,有的組件還能在組件里邊放置其他的組件,我們成為容器,Tkinter GUI組件關(guān)系如下:

接下來,我們在代碼中查看對象的繼承關(guān)系圖,以button為例:ctrl + 鼠標(biāo)左鍵,跳入button中,然后鼠標(biāo)右鍵,查看繼承結(jié)構(gòu)圖如下:

常用組件匯總列表

TKinter類名稱簡介
Toplevel頂層容器類,可用于為其他組件提供單獨的容器;Toplevel有點類似于窗口
Button按鈕代表按鈕組件
Canvas畫布提供繪圖功能,包括直線、矩形、橢圓、多邊形、位圖等。
Checkbutton復(fù)選框可供用戶勾選的復(fù)選框
Entry單行輸入框用戶可輸入內(nèi)容
Frame容器用于加載其它GUI組件
Label標(biāo)簽用于顯示不可編輯的文本或圖標(biāo)
LabelFrame容器也是容器組件,類似于Frame,但他支持添加標(biāo)題
Listbox列表框列出多個選項,供用戶選擇
Menu菜單菜單組件
Menubutton菜單按鈕用來包含菜單的按鈕(包括下拉式、層疊式等)
OptionMenu菜單按鈕Menubutton的子類,也代表菜單按鈕,可通過按鈕打開一個菜單
Message菜單按鈕類似于標(biāo)簽,但是可以顯示多行文本,后來當(dāng)Label也能顯示

GUI應(yīng)用程序類的經(jīng)典寫法

GUI應(yīng)用程序的主要結(jié)構(gòu),采用的面向?qū)ο蟮姆绞?,更加合理的組織代碼,方便日后的維護。通過類Application組織整個GUI程序,類Application繼承了Frame及通過繼承擁有了父類的特征,通過構(gòu)造函數(shù)_init_()初始化窗口中的對象,通過createWidgets()方法創(chuàng)建窗口中的對象。Frame框架是一個tkinter組件,表示一個矩形的區(qū)域。Frame一般作為容器使用,可以放置其他組件,從而實現(xiàn)復(fù)雜的布局。

"""
測試一個經(jīng)典的GUI程序的寫法,使用面向?qū)ο蟮姆绞?
"""
from tkinter import *
from tkinter import messagebox
 
class Application(Frame):
    """面向?qū)ο?""
 
    def _int_(self,master=None):
        super()._init_(master)     # super()代表的是父類的定義,而不是父類對象
        self.master = master
        self.pack()
 
        self.createWidget()
 
    def createWidget(self):
        self.btn01 = Button(self)
        self.btn01["text"] = "哈哈哈哈哈哈哈"
        self.btn01.pack()
        self.btn01["command"] = self.dianzan
 
        # 創(chuàng)建一個退出程序
        self.btnQuit = Button(self,text="退出",command=root.destroy)
        self.btnQuit.pack()
 
    def dianzan(self):
        messagebox.showinfo("Message", "點個贊")
        print("點個贊")
 
root = Tk()
root.geometry("400x300+100+200")
root.title("點贊")
app = Application(master=root)
 
root.mainloop()

總結(jié)

到此這篇關(guān)于基于Python的GUI圖形用戶界面編程的文章就介紹到這了,更多相關(guān)Python GUI圖形用戶界面編程內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論