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

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

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

前言

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

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

Hello World

從Hello World寫起,涉及到一個簡單的文本控件Label,當(dāng)然控件需要顯示的容器,此處我們將其顯示在一個Window上,也會使用一種布局方式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模塊(一個python包模塊對象),然后使用別名tk,這是為了少寫幾個字符而已,你也可以不使用別名功能

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

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

Window的實際效果

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

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

窗口

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

控件

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

容器

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

布局方式

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

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

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

事件綁定類型

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

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

提示對話框

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

文件對話框

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

圖片

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

畫板

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

ttk模塊

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

持久化

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

單元測試

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

設(shè)計

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

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

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

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

相關(guān)文章

  • 淺談Django自定義模板標(biāo)簽template_tags的用處

    淺談Django自定義模板標(biāo)簽template_tags的用處

    這篇文章主要介紹了淺談Django自定義模板標(biāo)簽template_tags的用處,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • python創(chuàng)建與遍歷二叉樹的方法實例

    python創(chuàng)建與遍歷二叉樹的方法實例

    這篇文章主要給大家介紹了關(guān)于python創(chuàng)建與遍歷二叉樹的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 使用Python實現(xiàn)計算DICOM圖像兩點真實距離

    使用Python實現(xiàn)計算DICOM圖像兩點真實距離

    這篇文章主要為大家詳細(xì)介紹了如何使用Python實現(xiàn)計算DICOM圖像兩點真實距離,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • Python?NumPy教程之二元計算詳解

    Python?NumPy教程之二元計算詳解

    二元運算符作用于位,進(jìn)行逐位運算。二元運算只是組合兩個值以創(chuàng)建新值的規(guī)則。本文將為大家詳細(xì)講講Python?NumPy中的二元計算,需要的可以了解一下
    2022-08-08
  • Python3中zip()函數(shù)知識點小結(jié)

    Python3中zip()函數(shù)知識點小結(jié)

    本文主要介紹了Python3中zip()函數(shù)知識點小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • python計算時間差的方法

    python計算時間差的方法

    這篇文章主要介紹了python計算時間差的方法,實例分析了Python時間操作的相關(guān)模塊與技巧,需要的朋友可以參考下
    2015-05-05
  • 一篇文章教你用Python實現(xiàn)一鍵文件重命名

    一篇文章教你用Python實現(xiàn)一鍵文件重命名

    這篇文章主要介紹了如何用python一鍵文件重命名,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Pandas多個條件(AND,OR,NOT)中提取行

    Pandas多個條件(AND,OR,NOT)中提取行

    本文主要介紹了Pandas多個條件(AND,OR,NOT)中提取行,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • PyCharm新建.py文件時默認(rèn)添加信息的實現(xiàn)

    PyCharm新建.py文件時默認(rèn)添加信息的實現(xiàn)

    這篇文章主要介紹了PyCharm新建.py文件時默認(rèn)添加信息的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Python 正則模塊詳情

    Python 正則模塊詳情

    這篇文章主要介紹了Python 正則模塊,在Python中提供了操作正則表達(dá)式的模塊,即re模塊,文章詳細(xì)記錄了正則表達(dá)式的裝飾符的相關(guān)資料,需要的朋友可以參考一下
    2021-11-11

最新評論

湛江市| 浮山县| 南陵县| 关岭| 宁德市| 南江县| 台东县| 浠水县| 天全县| 昭通市| 城市| 霸州市| 公安县| 明光市| 无锡市| 万全县| 新晃| 洪洞县| 贵德县| 嘉黎县| 常宁市| 宁国市| 房产| 广南县| 大邑县| 公安县| 浦江县| 玛多县| 新乡市| 兴化市| 武威市| 綦江县| 山阴县| 金堂县| 井陉县| 炉霍县| 根河市| 南木林县| 呼图壁县| 监利县| 博乐市|