第一個Tkinter程式
源自於 中國http://c.biancheng.net/tkinter/the-first-tkinter.html
本節使用 Tkinter 編寫第一個 GUI 程式,通過對程式碼的詳細解讀來講解 Tkinter 的編碼邏輯,以及使用 Tkinter 過程中的一些注意事項。
一個最簡單的 Tkinter 程式至少應包含以下四個部分:
·
導入 tkinter 模組
·
創建主視窗,也稱 root 視窗(即根視窗)
·
添加人機交互控制項,同時編寫相應的事件函數
·
通過主迴圈(mainloop)來顯示主視窗
上述四個步驟中,只有第三步屬於 Tkinter 程式設計的重點,其餘三個步驟屬於固定的代碼格式,如下所示:
# -*- coding:utf-8 -*-
import tkinter as tk
# 調用Tk()創建主窗口
root_window =tk.Tk()
# 給主視窗起一個名字,也就是視窗的名字
root_window.title('https://alex9ufoexploer.blogspot.com/search/label/python%20Tkinter')
root_window.mainloop()
程式運行後結果如下:
圖1:程式運行結果
上述代碼創建了一個沒有添加任何交互控制項的
Tkinter 程式,它也是最簡單的 GUI 程式。這裡的主視窗相當於畫板,其他的控制項都要建立在主視窗之上。主迴圈也稱“消息迴圈”或“事件迴圈”其的作用是讓主視窗處於顯示狀態。
下面我們對上述程式做一下簡單的改動,添加一些簡單的交互控制項(比如文本和按鈕),代碼如下所示:
# -*- coding:utf-8 -*-
import tkinter as tk
root_window =tk.Tk()
# 設置視窗title
root_window.title('https://alex9ufoexploer.blogspot.com')
# 設置視窗大小:寬x高,注,此處不能為 "*",必須使用 "x"
root_window.geometry('450x300')
# 更改左上角視窗的的icon圖示,載入logo標
root_window.iconbitmap('t1.ico')
# 設置主視窗的背景顏色,顏色值可以是英文單詞,或者顏色值的16進制數,除此之外還可以使用Tk內置的顏色常量
root_window["background"] = "#C9C9C9"
# 添加文本內,設置字體的前景色和背景色,和字體類型、大小
text=tk.Label(root_window,text="alex9ufoexploer,歡迎您",bg="yellow",fg="red",font=('Times', 20, 'bold italic'))
# 將文本內容放置在主視窗內
text.pack()
# 添加按鈕,以及按鈕的文本,並通過command 參數設置關閉視窗的功能
button=tk.Button(root_window,text="關閉",command=root_window.quit)
# 將按鈕放置在主視窗內
button.pack(side="bottom")
#進入主迴圈,顯示主視窗
root_window.mainloop()
圖2:程式運行結果
下面對上述示例進行簡單的分析:
1) 主視窗設置
上述程式,主要對主視窗的大小、背景顏色以及左上角的 icon 圖示進行了設置,這些代碼簡潔易讀,很容易理解。
2) 添加文本
上述程式中,我們添加了一行文本“C語言中文網,歡迎您”,此處使用了標籤 Lable 控制項來實現。需要注意的是,當成功創建標籤(文本)物件後,必須使用
pack 方法將其放置在主視窗內(pack 方法又稱視窗佈局管理器)。主視窗是其他一切控制項的基礎,其他內容元素都要附著在主視窗上,就如同在一塊畫板上添加描述文字一樣。下面再次回顧一下放置文本的代碼:
1.
# 添加文本標籤,text參數指定內容
2.
text=tk.Label(root_window,text="alex9ufoexploer,歡迎您",bg="yellow",fg="red",font=('Times', 20, 'bold italic'))
3.
# 將標籤物件放置在主視窗內
4.
text.pack()
3) 添加按鈕
添加按鈕的邏輯和添加文本標籤類似,值得注意的是,按鈕控制項通過command參數實現了“關閉視窗”功能,代碼如下:
1.
# 添加按鈕
2.
button=tk.Button(root_window,text="關閉",command=root_window.quit)
3.
# 這裡將按鈕放置在主視窗的底部
4.
button.pack(side="bottom")
Tkinter 提供了十餘種常用類型的控制項,每個控制項都有相應的屬性,比如顏色(前景色/背景色/顏色常量)、文本內容、字體樣式、控制項大小、控制項樣式、控制項命令等等,這些會在後續內容做詳細介紹。
4) 獨立運行tkinter程式
上述程式是在 IDLE 環境下運行的,但如果脫離了開發環境,怎麼做才能讓 Tkinter 程式獨立運行呢?
在 Windows 系統下,我們可以使用 Python 解譯器來運行程式檔,首先將程式檔保存至桌面,然後啟動 Python 解譯器,執行程式,如下所示:
C:\Users\Administrator>python C:\Users\Administrator\Desktop\hello.py
上述方法需要依賴於 Python 解譯器,當我們關閉解譯器視窗時,GUI 程式也隨之關閉。
如果想讓程式獨立的運行在 Windows 環境下,而不受
Python 解譯器的影響,就需要將程式碼存儲為.pyw檔,並使用 Pythonw.exe 來執行程式,如下所示:
C:\Users\Administrator>pythonw.exe
C:\Users\Administrator\Desktop\hello.py
執行後,當我們關閉控制台視窗時(即執行程式的 CMD 介面),GUI 程式不會隨之而關閉,而是獨立地顯示在桌面上。
沒有留言:
張貼留言