iT邦幫忙

2024 iThome 鐵人賽

DAY 17
0
Python

python零之旅系列 第 17

DAY17. Python GUI - 視窗基本屬性及按鈕設置

  • 分享至 

  • xImage
  •  

昨日我們學習了如何建立基本視窗,
今日,我們就來學習美化視窗的各種指令以及如何在視窗增加按鈕,
以下我們開始今天的學習。


1.設定標題

首先,我們一樣建立基本視窗,
視窗標題的語法為title(),在括號內加入字串,
執行後便會呈現以字串為標題的視窗。
https://ithelp.ithome.com.tw/upload/images/20241001/20169195ssTxXUNkqc.png
https://ithelp.ithome.com.tw/upload/images/20241001/201691955NZlyQL1kS.png

2.設定視窗大小

當我們想要初始化視窗大小時,
我們可以使用語法geometry()像素來設定視窗大小,
將寬高相乘並以字串的形式打出,便能設定視窗大小。

不過,基本視窗的預設大小事可以根據使用者自行拉大及縮小,
因此,我們可以使用語法來固定視窗大小,以下提供2種方法:

(1) minsize(width=, height=)、maxsize(width=, height=)
我們設立視窗的最大值及最小值和視窗大小一致,
如此一來,使用者便無法再縮放視窗大小。

(2) resizable(False, False)
這項語法是直接對使用者的執行做設定,
False表示使用者無法對於寬和高進行修改,
括號內也可用0來簡化False。(True 為1)
https://ithelp.ithome.com.tw/upload/images/20241001/20169195yGIta1W9Ew.png
https://ithelp.ithome.com.tw/upload/images/20241001/201691954xk7h1gKRk.png

3.設立ICON

當我們要在視窗中新增ICON時,首先要將圖片轉成ico檔,才能進行。
之後,我們要先將目標ICON放到專案的資料夾內,
使用語法時才能找到ICON的位置。
https://ithelp.ithome.com.tw/upload/images/20241001/20169195nAKs9m03Hc.png

我們使用**iconbitmap()**語法,
括號內可以直接打檔名(注意要加上副檔名),或是複製ICON的路徑。
https://ithelp.ithome.com.tw/upload/images/20241001/20169195HxhrvTrDwy.png

執行後我們能發現,
視窗左上角原本預設的羽毛,變成我們自行設立的ICON。
https://ithelp.ithome.com.tw/upload/images/20241001/20169195YZN7TbyEiN.png

4.背景顏色及透明度

當我們想要設立視窗的背景顏色時,
我們可以使用語法config(bg="顏色")
顏色可以直接輸入單詞,也可以輸入顏色的序號。

除此之外,我們還能設立視窗透明度,
使用 attributes("-alpha","透明程度") 即可調整。
在這個語法中,透明程度為0-1的浮點數,
0為透明度100%(即全透明),1為透明度0%(即全不透明)。
https://ithelp.ithome.com.tw/upload/images/20241001/20169195dEt9Q43wbg.png
https://ithelp.ithome.com.tw/upload/images/20241001/20169195xR20MeBjn6.png

5.置頂

當我們在執行Vs code時,視窗回彈出在電腦所有視窗的最上面,
但只要按下其他視窗,我們的建立的視窗就會被覆蓋住。
如果想要讓我們設立的視窗永遠出現在最上層,
我們可以使用置頂的語法attributes("-topmost",1)
1為True,便是置頂打開的意思。
https://ithelp.ithome.com.tw/upload/images/20241001/201691958EkENkmepl.png

6.設置按鈕

設定完視窗後,我們來學習如何在視窗上加上按鈕。
首先,我們設立一個Button物件,並取名為btn,後面可以使用text輸入按鈕的文字。
我們可以比照視窗的方法,同樣來設計按鈕的外觀。

如果我們想要讓按鈕被按下後回傳訊息,
我們可以在設置按鈕的程式碼上方設立一個Function,
寫出當按鈕被按下時需要執行的動作,
並在按鈕設置區寫上使用Function。
注意,若將Fuction寫在按鈕設置的程式碼下方,則無法被讀取。

最後,我們需要使用到 pack() 語法,將按鈕佈置到視窗上。
https://ithelp.ithome.com.tw/upload/images/20241001/20169195NnArx3h3jk.png

執行後我們可以看到,
當按下按鈕時,
系統就會回傳我們設定的字串在下方。
https://ithelp.ithome.com.tw/upload/images/20241001/20169195uTugkpmtPP.png

除了建立純文字按鈕外,我們也可以將按鈕轉換成圖片的形式。
我們在按鈕設置上方新增一個img物件,並貼上想要使用的圖片(png檔),
並將按鈕配置改為img即可。
https://ithelp.ithome.com.tw/upload/images/20241001/201691955HCKxWnJgt.png
https://ithelp.ithome.com.tw/upload/images/20241001/20169195anT0BHdj6F.png


在今天的學習中,我深入了解如何透過 Tkinter 來美化和自訂 GUI 介面。
透過設定視窗的標題、大小、圖示、背景顏色和透明度,
我發現這些屬性不僅能夠提升視窗的視覺效果,還可以使介面更具專業性。
同時,學習如何讓視窗永遠置頂以及在視窗中添加各種樣式的按鈕,
增強了我對 GUI 介面互動性的理解。

參考資料:
https://www.youtube.com/watch?v=qkxkLLzu3H0
https://www.youtube.com/watch?v=zVp1Dg_WQwU


上一篇
DAY16. Python GUI - 安裝開發環境及建立基本視窗
下一篇
DAY18. Python GUI - 建立標籤及對話框
系列文
python零之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言