最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

前言    

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

常用的GUI庫

1.Tkinter

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

2.wxPython

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

3.PyQT

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

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

1.創(chuà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.事件處理

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

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

主窗口設置

主窗口位置和大小

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

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

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

from tkinter import *
from tkinter import messagebox
 
root = Tk()  # 創(chuàng)建主窗口
root.title = ("來點贊呀")   # 建立標題欄
root.geometry("500x300+100+100")
btn01 = Button(root)  # 建立一個btn01對象設置,將窗口放進去
 
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組件關系如下:

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

常用組件匯總列表

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

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

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

"""
測試一個經(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é)

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

相關文章

最新評論

襄汾县| 城市| 织金县| 股票| 平罗县| 固镇县| 芒康县| 正镶白旗| 工布江达县| 黄浦区| 德庆县| 常州市| 天峨县| 宁都县| 新田县| 顺平县| 特克斯县| 本溪| 深州市| 祁阳县| 红安县| 阿克| 大连市| 徐州市| 南陵县| 海门市| 无为县| 阿拉善盟| 金寨县| 虹口区| 天气| 昭苏县| 大宁县| 西盟| 思茅市| 电白县| 平邑县| 汉川市| 昭觉县| 韶关市| 那坡县|