1. 程式人生 > >Python又把GUI介面攻下了,今天就告訴你怎麼玩

Python又把GUI介面攻下了,今天就告訴你怎麼玩

開發十年,就只剩下這套架構體系了! >>>   

python gui

0.引言

學Python這麼久了,一直想做個介面出來,最近發現Python有個內建庫tkinter,利用它可以很輕鬆做出一些簡易的UI介面,首先來看Python官方對Tkinter的說明:

The tkinter package (“Tk interface”) is the standard Python interface to the Tk GUI toolkit. Both Tk and tkinter are available on most Unix platforms, as well as on Windows systems.

從上面描述中我們不難看出,不管你是 Mac OS 系統,還是 Windows 系統,它都可以生成相對應的操作介面,這就是所謂的跨平臺。

1.呼叫關係說明

其原理就是我們使用 Python程式碼去呼叫 Tkinter, Tkinter 已經封裝了訪問TK的介面,這個介面是一個圖形庫,支援多跨平臺作業系統,進而通過它,我們就可以呼叫我們系統本身的GUI介面了。

Tkinter

2.環境

作業系統:Windows / Linux / Mac OS

Python版本:3.6.6

3.小試牛刀

有了概念並瞭解原理之後,接下來就小試牛刀一下~

import tkinter
# 定義一個窗體
top = tkinter.Tk()
# 將其加入主迴圈
top.mainloop()

Tkinter 執行一下,biu~,三行程式碼就把一個視窗彈出來了,有沒有很神奇~

4.中試牛刀

接下來我們要來點複雜的:

import tkinter as tk
import tkinter.messagebox as mbox


# 定義MainUI類表示應用/視窗,繼承Frame類
class MainUI(tk.Frame):
# Application建構函式,master為視窗的父控制元件
def __init__(self, master = None):
# 初始化Application的Frame部分 
tk.Frame.__init__(self, master)
# 顯示視窗,並使用grid佈局
self.grid()
# 建立控制元件
self.createWidgets()


# 建立控制元件
def createWidgets(self):
# 建立一個標籤,輸出要顯示的內容
self.firstLabel = tk.Label(self,text="「人人都是Pythonista」專注Python領域,做最專業的Python星球。")
# 設定使用grid佈局
self.firstLabel.grid()
# 建立一個按鈕,用來觸發answer方法
self.clickButton = tk.Button(self,text="點一下瞧瞧?",command=self.answer)
# 設定使用grid佈局
self.clickButton.grid()


def answer(self):
# 我們通過 messagebox 來顯示一個提示框
mbox.showinfo("「人人都是Pythonista」",'''
這是一個專注Python的星球,我們提供「從零單排」、「實戰專案」、「大航海」、「技術沙龍」、「技術分享」、「大廠內推」等系列供你選擇及學習,當然也會有周邊技術沿伸。
本星球會不定期開展各類實戰專案,階段性組織線上技術沙龍、分享等;對於職業發展路線不明確的,我們會邀請到一些大廠hr及高階開發、經理等給大家解惑。
加入我們,和千人一起玩Python,To be a Pythonista!
''')


# 建立一個MainUI物件
app = MainUI()
# 設定視窗標題
app.master.title('「人人都是Pythonista」')
# 設定窗體大小
app.master.geometry('400x100')
# 主迴圈開始
app.mainloop()

在這裡:

  1. 我們匯入了 tkinter 的相關模組
  2. 定義了初始化函式,通過 grid() 方法將我們的元件傳給父容器
  3. 自定義一個建立元件的方法,我們建立了一個標籤和一個按鈕,這個按鈕被點選後就會觸發 answer這個方法
  4. 我們通過 messagebox 來顯示一個提示框
  5. 例項化我們的 APP,然後通過主執行緒來監聽我們的介面操作

執行後如下:

Tkinter

5.總結

想要做出漂亮的UI介面,還是需要深入地學習下Tkinter這個模組。上文中的我們只用到了框架、按鈕、標籤、文字這四種控制元件,而在Tkinter中給我們提供了15種控制元件供大家使用。

此外Tkinter控制元件佈局有三種方式:包裝pack()、網格grid()、位置place(),本文中選用了grid,大家也可以逐一嘗試下有什麼區別,期待大家的大試牛刀~

關注公眾號「Python專欄」,後臺回覆關鍵字:zsxq03,獲取本文全部程式碼

![Python專欄二維碼](https://img-blog.csdnimg.cn/20190228220401806.jpeg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTIzNjU4Mjg=,size_4,color_FFFFFF,t_70#pic