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

實(shí)現(xiàn)Python圖形界面框架TkInter寫(xiě)GUI界面應(yīng)用簡(jiǎn)介過(guò)程操作

 更新時(shí)間:2021年09月09日 09:19:30   作者:叫我王員外就行  
TkInter是Python用于開(kāi)發(fā)GUI界面的標(biāo)準(zhǔn)庫(kù),如果你想快速開(kāi)發(fā)一個(gè)帶有GUI界面的小工具(笑小程序),且又能同時(shí)在Linux、Windows、Mac上使用,TkInter天生支持跨平臺(tái),天生具備穩(wěn)定性,我認(rèn)為它能滿足內(nèi)部工具的簡(jiǎn)單需求

前言

它的底層是Tcl/Tk,先用起來(lái)再說(shuō),另外Python畢竟是面向?qū)ο笳Z(yǔ)言,所以全文會(huì)使用到class和對(duì)象,盡量日后能滿足開(kāi)發(fā)項(xiàng)目的需求。

(備注:Tcl/Tk 是一種簡(jiǎn)明,高效,可移植性好的編程語(yǔ)言。在信息產(chǎn)業(yè)領(lǐng)域具有廣泛的應(yīng)用。)

Hello World

從Hello World寫(xiě)起,涉及到一個(gè)簡(jiǎn)單的文本控件Label,當(dāng)然控件需要顯示的容器,此處我們將其顯示在一個(gè)Window上,也會(huì)使用一種布局方式pack()

import tkinter as tk
class RootWindow(tk.Tk):
def __init__(self, **kwargs):
super().__init__(**kwargs)
label = tk.Label(self, text="Hello World", padx=10, pady=10)  # 默認(rèn)容器為window
label.pack()  # 默認(rèn)side=tk.TOP
 
if __name__ == "__main__":
my_window = RootWindow()
my_window.mainloop()

1、首先導(dǎo)入tkinter模塊(一個(gè)python包模塊對(duì)象),然后使用別名tk,這是為了少寫(xiě)幾個(gè)字符而已,你也可以不使用別名功能

2、創(chuàng)建RootWindow類,此類必須繼承tkinter模塊下的Tk類,Tk類產(chǎn)生的對(duì)象,表示GUI中的一個(gè)Window

3、主模塊作為腳本執(zhí)行時(shí),創(chuàng)建RootWindow對(duì)象(Tk類的子類對(duì)象,表示is a Tk對(duì)象),接著調(diào)用Tk對(duì)象的mainloop()方法,讓主線程一直在事件循環(huán)中,確保程序不退出,此時(shí)的GUI應(yīng)用才會(huì)一直運(yùn)行

Window的實(shí)際效果

Hello World的文本位于一個(gè)叫做Label的控件中,Label控件類位于tkinter包中,它是Widget的子類,產(chǎn)生的每個(gè)對(duì)象表示一個(gè)文本控件,在創(chuàng)建Label對(duì)象時(shí),必須傳入一個(gè)容器對(duì)象,表示這個(gè)控件依附在哪個(gè)容器中,幾乎所有前端技術(shù)都會(huì)涉及到的技術(shù)點(diǎn),就是控件樹(shù)的概念(頁(yè)面都是樹(shù)形結(jié)構(gòu))

另外調(diào)用了Label的pack()方法的使用,這個(gè)pack()方法表示布局方式,也稱作布局管理器,它只能水平或者垂直的擺放控件,類似于Android中的LinearLayout,現(xiàn)在使用tkinter肯定會(huì)嵌套使用布局方式,這樣才能做出復(fù)雜的GUI應(yīng)用!

窗口

tkinter中根Window使用tkinter包模塊下的Tk對(duì)象,而子Window,則可以使用tkinter包模塊下的Toplevel

控件

自帶了很多控件類,它們幾乎都是Widget的子類,使用時(shí),只需要?jiǎng)?chuàng)建控件對(duì)象即可,后面我們會(huì)詳細(xì)介紹每一種控件,這里簡(jiǎn)單提及Label、Button、ListBox、Radiobutton等等

容器

如果需要將多個(gè)控件組合在一起作為一個(gè)整體,那么tkinter包模塊下的Frame就可以作為它們的容器,在實(shí)際項(xiàng)目中,我們會(huì)大量的使用Frame去組合控件,其實(shí)Frame也算做控件,只不過(guò)它的作用是包含其他控件而已。(備注:LabelFrame也是容器類,用于包含控件)

布局方式

除了Hello World中提及的pack()方式、還有常用的grid()、place(),它們也被稱作布局管理器,專門管理控件如何擺放的,日后我們的代碼里會(huì)經(jīng)常用到布局方式,還有Panedwindows的使用

雙向綁定的數(shù)據(jù)對(duì)象

它們?nèi)渴亲鳛槲挥趖kinter包模塊下的Variable類的子類而存在,包括IntVar、StringVar、BooleanVar、還有一個(gè)單獨(dú)的Var,它們可以和某個(gè)控件綁定在一起,實(shí)現(xiàn)雙向綁定:當(dāng)改變控件的值、對(duì)應(yīng)的Var值會(huì)改變;當(dāng)改變Var值,控件上的顯示也會(huì)跟著改變

事件綁定類型

控件可以綁定一些事件,這些事件類型包括一些常見(jiàn)的交互行為,只要事件發(fā)生,為控件綁定的可調(diào)用對(duì)象,即會(huì)被調(diào)用,常見(jiàn)的事件有:

KeyPress 鍵盤的按鍵被按下時(shí)激活KeyRelease 鍵盤的按鍵按下后松開(kāi)時(shí)激活Button 點(diǎn)擊鼠標(biāo)時(shí)激活ButtonRelease 點(diǎn)擊鼠標(biāo)后松開(kāi)時(shí)激活Motion 鼠標(biāo)的光標(biāo)在控件上移動(dòng)時(shí)激活Enter 鼠標(biāo)光標(biāo)進(jìn)入控件時(shí)激活Leave 鼠標(biāo)光標(biāo)離開(kāi)控件時(shí)激活MouseWheel 鼠標(biāo)滑輪滾動(dòng)時(shí)激活FocusIn 控件獲得焦點(diǎn)時(shí)激活,例如鼠標(biāo)點(diǎn)擊輸入控件開(kāi)始進(jìn)行輸出FocusOut 控件失去焦點(diǎn)時(shí)激活,例如鼠標(biāo)離開(kāi)了輸入框Configure 控件的配置發(fā)生改變,例如大小變化時(shí)激活

提示對(duì)話框

GUI應(yīng)用中,對(duì)話框用于提示人類錯(cuò)誤,或者詢問(wèn)一些基本信息,tkinter框架中自帶了幾個(gè)對(duì)話框供你使用,它們位于tkinter包中的messagebox模塊中

文件對(duì)話框

選擇本地文件路徑的對(duì)話框,位于tkinter包中的filedialog模塊中,即有選擇目錄的,也有選擇文件的,后面我們每個(gè)都使用一下

圖片

使用PhotoImage對(duì)象,只要指定了圖片文件的路徑,即可在應(yīng)用上顯示圖片,默認(rèn)指定文件名時(shí),只會(huì)在當(dāng)前工作目錄下查找圖片

畫(huà)板

Canvas的支持,可以使用通過(guò)代碼繪制一些簡(jiǎn)單的圖形,另外也可以和matplotlib數(shù)據(jù)可視化庫(kù)結(jié)合起來(lái)使用

ttk模塊

大佬注意到tkinter模塊的使用中,有一些基本需求,控件功能上滿足的不夠好,所以又提供了一個(gè)ttk模塊,在ttk模塊中提供了很多控件類,這些類有新的默認(rèn)樣式,當(dāng)然是可以替代原先tkinter下控件類,下面有很多控件

持久化

我們還有一些需要在程序結(jié)束后,仍然保留在磁盤里的方式,這就是數(shù)據(jù)持久化,可以使用標(biāo)準(zhǔn)庫(kù)中的所有方式,如果是簡(jiǎn)單的應(yīng)用配置信息,使用configparser模塊即可滿足需求……

單元測(cè)試

位于tkinter包模塊下,有個(gè)test包,非常值得學(xué)習(xí),大佬是怎么做單元測(cè)試的?

設(shè)計(jì)

做GUI應(yīng)用,還是需要提前設(shè)計(jì)原型的,那么采用什么工具設(shè)計(jì)原型圖比較好呢?隨便你采用什么方式畫(huà)出來(lái)即可

做出多復(fù)雜的應(yīng)用?

無(wú)非開(kāi)發(fā)成本高一些,只要有心,我相信使用tkinter照樣可以做出像樣的GUI應(yīng)用!

以上就是實(shí)現(xiàn)Python圖形界面框架TkInter寫(xiě)GUI應(yīng)用簡(jiǎn)介過(guò)程操作的詳細(xì)內(nèi)容,更多關(guān)于Python圖形界面框架TkInter的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • PyCharm無(wú)代碼提示解決方案

    PyCharm無(wú)代碼提示解決方案

    最近發(fā)現(xiàn)在使用pycharm編寫(xiě)python代碼的時(shí)候發(fā)現(xiàn)沒(méi)有了代碼提示的功能,下面這篇文章主要給大家介紹了關(guān)于PyCharm無(wú)代碼提示解決方案的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • 基于python實(shí)現(xiàn)雪花算法過(guò)程詳解

    基于python實(shí)現(xiàn)雪花算法過(guò)程詳解

    這篇文章主要介紹了基于python實(shí)現(xiàn)雪花算法過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • 詳解Python中__new__和__init__的區(qū)別與聯(lián)系

    詳解Python中__new__和__init__的區(qū)別與聯(lián)系

    在Python中,每個(gè)對(duì)象都有兩個(gè)特殊的方法:__new__和__init__,本文將詳細(xì)介紹這兩個(gè)方法的不同之處以及它們之間的聯(lián)系,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • Python+OpenCV之圖像梯度詳解

    Python+OpenCV之圖像梯度詳解

    這篇文章主要為大家詳細(xì)介紹了Python OpenCV中圖像梯度(Sobel算子、Scharr算子和Laplacian算子)的實(shí)現(xiàn),感興趣的小伙伴可以了解一下
    2022-09-09
  • 使用python將csv數(shù)據(jù)導(dǎo)入mysql數(shù)據(jù)庫(kù)

    使用python將csv數(shù)據(jù)導(dǎo)入mysql數(shù)據(jù)庫(kù)

    這篇文章主要為大家詳細(xì)介紹了如何使用python將csv數(shù)據(jù)導(dǎo)入mysql數(shù)據(jù)庫(kù),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-05-05
  • 使用python進(jìn)行文件處理的庫(kù)存管理

    使用python進(jìn)行文件處理的庫(kù)存管理

    庫(kù)存管理是任何處理實(shí)物商品的企業(yè)的一個(gè)重要方面,Python?提供了各種庫(kù)來(lái)讀取和寫(xiě)入文件,使其成為管理庫(kù)存的絕佳選擇,它允許我們使用?Python?等編程語(yǔ)言來(lái)操作計(jì)算機(jī)文件系統(tǒng)上的文件,在本文中,我們將探討如何使用文件處理在?Tkinter?中實(shí)現(xiàn)庫(kù)存管理系統(tǒng)
    2023-09-09
  • Python實(shí)現(xiàn)Wordcloud生成詞云圖的示例

    Python實(shí)現(xiàn)Wordcloud生成詞云圖的示例

    這篇文章主要介紹了Python實(shí)現(xiàn)Wordcloud生成詞云圖的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Python下劃線5種含義代碼實(shí)例解析

    Python下劃線5種含義代碼實(shí)例解析

    這篇文章主要介紹了Python下劃線5種含義實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • pygame實(shí)現(xiàn)鍵盤的連續(xù)監(jiān)控

    pygame實(shí)現(xiàn)鍵盤的連續(xù)監(jiān)控

    這篇文章主要為大家詳細(xì)介紹了pygame實(shí)現(xiàn)鍵盤的連續(xù)監(jiān)控,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • 如何利用PyQt5美化你的GUI界面

    如何利用PyQt5美化你的GUI界面

    python的腳本開(kāi)發(fā)簡(jiǎn)單,有時(shí)候只需幾行代碼就能實(shí)現(xiàn)豐富的功能,而且python本身是跨平臺(tái)的,所以深受程序員的喜愛(ài),下面這篇文章主要給大家介紹了關(guān)于如何利用PyQt5美化你的GUI界面的相關(guān)資料,需要的朋友可以參考下
    2022-01-01

最新評(píng)論