欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

帶你詳細(xì)了解Python GUI編程框架

 更新時(shí)間:2021年08月25日 09:11:31   作者:編程界的小胖子  
今天小編就為大家分享一篇python 實(shí)現(xiàn)GUI(圖形用戶界面)編程詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

1. GUI編程類關(guān)系圖

我們來看看Tkinter 的GUI組件關(guān)系圖

GUI編程庫繼承關(guān)系

重要說明:

1.上述圖表示的是相關(guān)類的繼承關(guān)系圖,從右到左子類繼承父類。

(1) 比如:組件Label Label繼承->Widget類->繼承Basewidget類->繼承Misc類->繼承Object父類

子類擁有父類的所有的屬性和方法

2.Misc和Wim

Tkinter 的 GUI組件有兩個(gè)父類,它們直接繼承了Object類

1.Misc 是所有組件的根父類

2.Wim 主要提供一些與窗口管理器通信的功能函數(shù)

3.TK

1.Misc 和 Wim 派生出類TK。

2.代表應(yīng)用程序的主窗口,一般應(yīng)用程序都需要直接或者間接使用TK

3.程序中通常定義

 # 定義主窗口
  root = TK()

4.Pack類、Place類、Grid類是我們常用的布局管理器

1.布局管理器管理組件的大小、位置

2.可以將容器中組件實(shí)現(xiàn)合理的排布

5.Basewidget是所有組件的父類

6.Widget是所有組件的父類

widget共有四個(gè)父類:BaseWidget、Pack、Grid、Place

GUI所有組件都具備四個(gè)父類的所有屬性和方法

widget繼承圖

2. 常用組件方法

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

3.GUI面向?qū)ο髮懛?/h2>

我們前面已經(jīng)使用過Tkinter 類來創(chuàng)建一個(gè)簡單的GUI程序,步驟大致為:

1.創(chuàng)建根窗口

2.創(chuàng)建組件

3.布局排版管理

4.導(dǎo)入事件

.....以上都是基于過程的編程寫法

但是,我們實(shí)際工作中,開發(fā)的程序都是比較復(fù)雜的

GUI編程我們也要使用面向?qū)ο蠓绞饺ゾ幊?,更加合理的組織我們代碼

GUI面向?qū)ο缶幊虒懛P(guān)鍵點(diǎn):

官網(wǎng)DEMO版本:

image.png

  • 使用Application類來組織各個(gè)GUI程序
  • Application類繼承了Frame類及所有父類特性
  • 使用構(gòu)造函數(shù)__init__()初始化窗口中的對象
  • 使用createwidgets()方法創(chuàng)建窗口中的對象
  • 創(chuàng)建主窗口root
  • 運(yùn)行調(diào)用Application來調(diào)用GUI對象
  • 循環(huán)事件管理與用戶進(jìn)行交互

Frame框架是Tkinter組件,表示一個(gè)矩形的區(qū)域,F(xiàn)rame一般作為容器使用,可以放置其他組件,從而實(shí)現(xiàn)復(fù)雜的布局

面向?qū)ο蟠a邏輯拆分圖:

Application對象

根據(jù)官網(wǎng)推薦的DEMO版本,我們來使用面向?qū)ο笏枷雽?shí)現(xiàn)GUI程序

from tkinter import *
class Application(Frame):
    def __init__(self,master=None):
        # super()代表的是父類的定義,而不是父類對象
        super().__init__(master)
        self.master = master
        self.pack()
        self.createwidget()
    def createwidget(self):
        self.but1 = Button(self)
        self.but1["text"] = "add"
        self.but1.pack()
        self.but1["command"] = self.addinfo
    def addinfo(self):
        messagebox.showinfo("提示","添加成功")

root = Tk()
root.geometry("400x100+200+300")
root.title("MyfirstAPP")
app = Application(master=root)
root.mainloop()

Application運(yùn)行結(jié)果

總結(jié)

我們學(xué)習(xí)GUI編程面向?qū)ο蟮膶懛?,讓我們代碼更加的整潔,提高代碼的重復(fù)使用率。

GUI 面向?qū)ο缶幊淌褂美^承Frame類使用構(gòu)造函數(shù)來替代反復(fù)創(chuàng)建組件對象,組件操作全部封裝到createwidget方法,Application對象直接通過master來調(diào)用。

本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • 基于Python3編寫一個(gè)GUI翻譯器

    基于Python3編寫一個(gè)GUI翻譯器

    PySimpleGUI就是GUI工具包,用于創(chuàng)建GUI的。本文將利用PySimpleGUI編寫一個(gè)GUI翻譯器,感興趣的小伙伴可以跟隨小編一起動(dòng)手嘗試一下
    2022-08-08
  • Django設(shè)置Postgresql的操作

    Django設(shè)置Postgresql的操作

    這篇文章主要介紹了Django設(shè)置Postgresql的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python中SQLite如何使用

    Python中SQLite如何使用

    在本篇文章里小編給大家整理的是關(guān)于Python中SQLite的簡單應(yīng)用詳解,需要的朋友們可以學(xué)習(xí)下。
    2020-05-05
  • Python查找文件中包含中文的行方法

    Python查找文件中包含中文的行方法

    今天小編就為大家分享一篇Python查找文件中包含中文的行方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python正則表達(dá)式中匹配次數(shù)與貪心問題詳解(+??*)

    python正則表達(dá)式中匹配次數(shù)與貪心問題詳解(+??*)

    正則表達(dá)式是一個(gè)特殊的字符序列,它能幫助你方便的檢查一個(gè)字符串是否與某種模式匹配,下面這篇文章主要給大家介紹了關(guān)于python正則表達(dá)式中匹配次數(shù)與貪心問題(+??*)的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • Python TestCase中的斷言方法介紹

    Python TestCase中的斷言方法介紹

    這篇文章主要給大家介紹了關(guān)于Python TestCase中的斷言方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Python datetime模塊使用方法小結(jié)

    Python datetime模塊使用方法小結(jié)

    這篇文章主要介紹了Python datetime模塊使用方法小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Python實(shí)現(xiàn)的金山快盤的簽到程序

    Python實(shí)現(xiàn)的金山快盤的簽到程序

    正在學(xué)習(xí)python而且自己一直在用金山快盤,所以就寫來個(gè)簽到的功能,每天定時(shí)跑
    2013-01-01
  • Python實(shí)現(xiàn)查詢某個(gè)目錄下修改時(shí)間最新的文件示例

    Python實(shí)現(xiàn)查詢某個(gè)目錄下修改時(shí)間最新的文件示例

    這篇文章主要介紹了Python實(shí)現(xiàn)查詢某個(gè)目錄下修改時(shí)間最新的文件,涉及Python使用os與shutil模塊針對文件的遍歷、屬性獲取、讀寫等相關(guān)操作技巧,需要的朋友可以參考下
    2018-08-08
  • Python英文詞頻統(tǒng)計(jì)(哈姆雷特)程序示例代碼

    Python英文詞頻統(tǒng)計(jì)(哈姆雷特)程序示例代碼

    在文本處理方面,Python也有著得天獨(dú)厚的優(yōu)勢,不僅提供了多種字符串操作函數(shù),而且還可以使用各種開源庫來處理文本,下面這篇文章主要給大家介紹了關(guān)于Python英文詞頻統(tǒng)計(jì)(哈姆雷特)程序示例的相關(guān)資料,需要的朋友可以參考下
    2023-06-06

最新評論