主頁(yè) > 知識(shí)庫(kù) > 帶你詳細(xì)了解Python GUI編程框架

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

熱門(mén)標(biāo)簽:長(zhǎng)沙高頻外呼系統(tǒng)原理是什么 ai電銷(xiāo)機(jī)器人源碼 地圖標(biāo)注審核表 西藏房產(chǎn)智能外呼系統(tǒng)要多少錢(qián) 湛江智能外呼系統(tǒng)廠家 百度地圖標(biāo)注沒(méi)有了 外呼并發(fā)線路 ai電話機(jī)器人哪里好 宿遷星美防封電銷(xiāo)卡

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

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

重要說(shuō)明:

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

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

子類(lèi)擁有父類(lèi)的所有的屬性和方法

2.Misc和Wim

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

1.Misc 是所有組件的根父類(lèi)

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

3.TK

1.Misc 和 Wim 派生出類(lèi)TK。

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

3.程序中通常定義

 # 定義主窗口
  root = TK()

4.Pack類(lèi)、Place類(lèi)、Grid類(lèi)是我們常用的布局管理器

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

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

5.Basewidget是所有組件的父類(lèi)

6.Widget是所有組件的父類(lèi)

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

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

2. 常用組件方法

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

3.GUI面向?qū)ο髮?xiě)法

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

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

2.創(chuàng)建組件

3.布局排版管理

4.導(dǎo)入事件

.....以上都是基于過(guò)程的編程寫(xiě)法

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

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

GUI面向?qū)ο缶幊虒?xiě)法關(guān)鍵點(diǎn):

官網(wǎng)DEMO版本:

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

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

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

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

from tkinter import *
class Application(Frame):
    def __init__(self,master=None):
        # super()代表的是父類(lèi)的定義,而不是父類(lèi)對(duì)象
        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()

總結(jié)

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

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

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

您可能感興趣的文章:
  • Python利用PyQt5制作一個(gè)獲取網(wǎng)絡(luò)實(shí)時(shí)數(shù)據(jù)NBA數(shù)據(jù)播報(bào)GUI功能
  • 詳解Python GUI工具取色器
  • Python常用GUI框架原理解析匯總
  • python GUI框架pyqt5 對(duì)圖片進(jìn)行流式布局的方法(瀑布流flowlayout)
  • Python的GUI框架PySide的安裝配置教程

標(biāo)簽:林芝 海南 漯河 盤(pán)錦 普洱 寧夏 大同 南平

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《帶你詳細(xì)了解Python GUI編程框架》,本文關(guān)鍵詞  帶你,詳細(xì),了解,Python,GUI,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《帶你詳細(xì)了解Python GUI編程框架》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于帶你詳細(xì)了解Python GUI編程框架的相關(guān)信息資訊供網(wǎng)民參考!
  • 企业400电话

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推薦文章