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

帶你詳細了解Python GUI編程框架

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

1. GUI編程類關系圖

我們來看看Tkinter 的GUI組件關系圖

GUI編程庫繼承關系

重要說明:

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

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

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

2.Misc和Wim

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

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

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

3.TK

1.Misc 和 Wim 派生出類TK。

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

3.程序中通常定義

 # 定義主窗口
  root = TK()

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

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

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

5.Basewidget是所有組件的父類

6.Widget是所有組件的父類

widget共有四個父類:BaseWidget、Pack、Grid、Place

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

widget繼承圖

2. 常用組件方法

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

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

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

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

2.創(chuàng)建組件

3.布局排版管理

4.導入事件

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

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

GUI編程我們也要使用面向?qū)ο蠓绞饺ゾ幊蹋雍侠淼慕M織我們代碼

GUI面向?qū)ο缶幊虒懛P鍵點:

官網(wǎng)DEMO版本:

image.png

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

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

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

Application對象

根據(jù)官網(wǎng)推薦的DEMO版本,我們來使用面向?qū)ο笏枷雽崿F(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運行結(jié)果

總結(jié)

我們學習GUI編程面向?qū)ο蟮膶懛ǎ屛覀兇a更加的整潔,提高代碼的重復使用率。

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

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

相關文章

  • python3爬蟲中多線程的優(yōu)勢總結(jié)

    python3爬蟲中多線程的優(yōu)勢總結(jié)

    在本篇文章里小編給大家分享了一篇關于python3爬蟲中多線程的優(yōu)勢總結(jié)內(nèi)容,需要的朋友們可以參考學習下。
    2020-11-11
  • python使用minimize()?函數(shù)替代matlab的fmincon函數(shù)

    python使用minimize()?函數(shù)替代matlab的fmincon函數(shù)

    這篇文章主要介紹了python使用minimize()函數(shù)替代matlab的fmincon函數(shù),在matlab中,fmincon函數(shù)可以用于求解帶約束的非線性多變量函數(shù)的最小值,即可以用來求解非線性規(guī)劃問題
    2022-09-09
  • Python使用type動態(tài)創(chuàng)建類操作示例

    Python使用type動態(tài)創(chuàng)建類操作示例

    這篇文章主要介紹了Python使用type動態(tài)創(chuàng)建類操作,結(jié)合實例形式詳細分析了Python使用type動態(tài)創(chuàng)建類的具體原理、實現(xiàn)方法與操作注意事項,需要的朋友可以參考下
    2020-02-02
  • Python全棧之線程詳解

    Python全棧之線程詳解

    這篇文章主要為大家介紹了Python全棧之線程,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • Python?設計模式行為型解釋器模式

    Python?設計模式行為型解釋器模式

    本文介紹了Python解釋器模式,解釋器模式即Interpreter?Pattern,給定一個語言,定義它的文法的一種表示,并定義一個解釋器,這個解釋器使用該表示來解釋語言中的句子,下面文章進入更深層學習,需要的小伙伴可以參考一下
    2022-02-02
  • Pytorch 如何加速Dataloader提升數(shù)據(jù)讀取速度

    Pytorch 如何加速Dataloader提升數(shù)據(jù)讀取速度

    這篇文章主要介紹了Pytorch 加速Dataloader提升數(shù)據(jù)讀取速度的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • python中視頻音頻的剪輯與處理實現(xiàn)

    python中視頻音頻的剪輯與處理實現(xiàn)

    Python中輕松實現(xiàn)各種視頻處理操作,包括剪輯、合并、添加音頻、文本、特效等多種功能,主要介紹了python中視頻音頻的剪輯與處理實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-06-06
  • python游戲庫pygame經(jīng)典教程(推薦!)

    python游戲庫pygame經(jīng)典教程(推薦!)

    Python Pygame是一款專門為開發(fā)和設計 2D 電子游戲而生的軟件包,是入門級游戲開發(fā)庫,下面這篇文章主要給大家介紹了python游戲庫pygame經(jīng)典教程的相關資料,需要的朋友可以參考下
    2022-12-12
  • python采用getopt解析命令行輸入?yún)?shù)實例

    python采用getopt解析命令行輸入?yún)?shù)實例

    這篇文章主要介紹了python采用getopt解析命令行輸入?yún)?shù)實例,非常具有實用價值,需要的朋友可以參考下
    2014-09-09
  • pycharm永久激活方法

    pycharm永久激活方法

    這篇文章給大家介紹了pycharm永久激活碼,通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,對pycharm激活碼相關知識感興趣的朋友一起看看吧
    2020-01-01

最新評論

晋宁县| 灵宝市| 西吉县| 鄯善县| 孟州市| 奉新县| 汤阴县| 大足县| 屏边| 平乡县| 兴化市| 睢宁县| 阿勒泰市| 大同市| 新和县| 泸溪县| 荣成市| 双城市| 青河县| 孝感市| 烟台市| 葫芦岛市| 偏关县| 和硕县| 云安县| 太和县| 留坝县| 涟源市| 和平区| 唐河县| 营山县| 东宁县| 古蔺县| 永吉县| 龙泉市| 邵阳县| 桃园市| 阜城县| 诸城市| 石门县| 陇川县|