你要的 Python 創(chuàng)建 GUI 用戶界面程序,來咯
時不時就有 b 友讓我整點
“Python GUI 相關(guān)的教程”
今天小帥b就來給你說道說道

用 Python 來寫 GUI 的庫有好幾個
比如?pyqt、wxpython、tkinter、kivy
相對來說比較常用的是 tkinter它是 Python 內(nèi)置的庫用起來比較 “直接了當”
是這樣的
TK 是一個開源的開發(fā)工具包里面提供了很多界面組件的接口比如按鈕、選項框、輸入框這些
而且這些組件是跨平臺的在不同的操作系統(tǒng)中都可以運行比如你常見的 MacOS,Linux,Windows

既然如此
Python 就把這些接口調(diào)起來封裝成函數(shù)和類然后整成?tkinter 模塊
這樣當我們想要寫 GUI 的時候直接使用?Python 調(diào)用 tkinter 就好了

在你的終端里面輸入“python -m tkinter”

出現(xiàn)類似的窗口說明你的 tkinter 和 tk?都給安裝上了
那么如何玩 tkinter 呢
接下來就是學(xué)習(xí) Python 的正確姿勢

組件的使用
我先把一些常用的組件操作給你介紹一下
首先我們導(dǎo)入 tkinter
然后調(diào)用 Tk 方法

運行就可以得到一個窗口

樣式與你的系統(tǒng)類型相關(guān)
其中我們調(diào)用了 mainloop 方法
主要是讓它去循環(huán)等待用戶的交互
定義窗口的標題

窗口的高寬是根據(jù)組件的大小相對而定的
這樣能在不同的系統(tǒng)中比較好的運行
當然,你也可以
使用 geometry自己指定窗口的寬高

tkinter 把不同的組件
都封裝成了 Class
比如想要往里加入文本
就可以使用 Label 對象

這里創(chuàng)建了一個 Label 小組件
然后用 pack 塞到窗口中去
每個組件都有一些屬性可以設(shè)置
比如這里可以設(shè)置常用的寬高字體顏色

加個騷騷的按鈕


按鈕可以定義點擊事件
比如你想當點擊按鈕的時候調(diào)用方法來修改 Lable 里面的內(nèi)容
可以使用 command 來綁定回調(diào)函數(shù)

運行一波

添加文本輸入框可以使用 Entry 對象

可以通過?entry 的 get 方法
獲取輸入的值
比如我們要讓用戶輸入名稱然后點擊按鈕把文字變成“xxx,你被綠了”就可以這樣

這里主要是將輸入的內(nèi)容
作為 name 參數(shù)傳給?change_label 方法

其它需要點擊的組件使用方式和 Button?差不多
添加單選
RadioButton

添加下拉選擇框
使用 Combbox這個需要導(dǎo)入 ttk


多選框
CheckButton

彈窗messagebox
讓它點擊按鈕的時候彈窗可以這樣


除了 showinfo 之外show 警告和錯誤

比如顯示警告

還可以用疑問的方式展示

比如 askquestion

長文本Text

獲取 Text 的內(nèi)容

其中 get 可以傳入兩參數(shù)一個是想要獲取的行數(shù)
一個是想要獲取該行中的位置
使用 tk.END?可以獲取全部
組件的布局
剛剛的布局有點亂可以在組件 pack 的時候設(shè)置參數(shù)來控制組件的位置

這里用 side 指定位置padx 來指定邊距
一般來說窗口如果有多個組件
會先定義 Frame 來先布局
Frame 也是一個組件
它可以填充其它組件進來
比如我們可以把剛剛的窗口

分成 5 個 Frame

這里將不同的組件填充到相應(yīng)的 Frame 中每個 Frame 設(shè)置的間隔為?5

另一種比較常用的布局方式是使用?grid()
你可以把窗口看成是一個多行多列的表格
比如我們想把剛剛窗口的 5?個 Frame
劃分成
| f4 |
| f2 |
| f1 |
| f3 |
| f5 |
那么就可以這樣

通過 grid 去指定 frame 的
具體在第幾行第幾列
其中 sticky 可以控制
組件的對其方向pad 控制間距
你還可以通過
rowconfigure 和?columnconfigure來控制單元格之間的大小

一種更好的方式可以用面向?qū)ο蟮姆绞?/span>來使用 tkinter 寫 GUI
像以下這樣在類方法中定義組件和事件

ok,以上
你可以自己去寫點界面玩玩
當然了我在這里只是介紹一些常用組件的使用
大多組件的使用方式都差不多
更多的組件和使用細節(jié)可以參考https://docs.python.org/3/library/tk.html
哦對了
之前在 VIP 簡單寫了下聊天室的實現(xiàn)用的也是 tkinter

感興趣可以在閱讀原文中了解
那么,我們下回見peace

太愛我的話就加我微信
備注【讀者】即可通過
點亮在看你我同在
評論
圖片
表情
