iT邦幫忙

2024 iThome 鐵人賽

DAY 21
0
Python

python零之旅系列 第 21

DAY21. Python GUI - 滑桿Scale

  • 分享至 

  • xImage
  •  

今日,我們要學習的是滑桿的建立及各項方法,
最後我們會將滑桿和視窗結合,
製作出一個小應用。
那我們就開始今日的學習。


1.建立滑桿
首先,我們創建一個scale物件,
而滑桿的預設值為垂直滑桿(vertical),數值為0-100。
我們可以將方向使用**orient=**改成平行滑桿(horizontal),
並設定寬度與長度。
https://ithelp.ithome.com.tw/upload/images/20241004/20169195AaGhWJZckX.png

運行程式碼後,我們就能獲得一個滑桿了!
https://ithelp.ithome.com.tw/upload/images/20241004/20169195K9FVJOnaJT.png

若我們要自定義數值,
則用from設置起始數值,to設置結束數值。

要注意的是,
from後面需要加底線
才不會與import中的from起衝突。
https://ithelp.ithome.com.tw/upload/images/20241004/20169195Pi9fKaQnmR.png

執行後,滑桿的起始數值變從10開始。
https://ithelp.ithome.com.tw/upload/images/20241004/20169195t7hCI3cufK.png

2.建立滑桿設計

如果要讓我們的滑桿有更多設計,
這裡提供下面4點參考:
(1)showvalue
這可以讓滑桿上面新增當前滑桿所在位置的數值,我們輸入1(True)表示開啟。
(2)tickinterval
這可以讓滑桿下方顯示數值刻度,我們這裡設定一單位的刻度為10。
(3)resolution
這可以讓滑桿一次增加或減少一定的數值,我們設定一次增加/減少10單位。
(4)digits
這可以設定數值顯示的位數,我們設置1,表示數值只顯示個位數。
https://ithelp.ithome.com.tw/upload/images/20241004/20169195no9BLSdWDh.png

我們可以執行看看結果。
https://ithelp.ithome.com.tw/upload/images/20241004/2016919548Gx6JKEvK.png

3.建立標籤和預設值

我們可以設立label,但它不能變更位置,只能顯示在左上角。
另外,我們可以用set方法,設定滑桿初始值,這裡我們設定50。
https://ithelp.ithome.com.tw/upload/images/20241004/20169195Q8XgnkMGyU.png

執行後,我們可以發現滑桿一開始就放在50的位置。
https://ithelp.ithome.com.tw/upload/images/20241004/20169195tMsXStI9NV.png

4.應用

最後,我們可以來做一個實作:透過滑桿來調整視窗透明度。
我們設立一個方法change,
用get抓取數值,並將數值放入透明度的數值內。

要注意的是,
因為透明度是0-1,而滑桿的數值為10-100,
因此滑桿數值需要除以100,才能對應透明度的值。
https://ithelp.ithome.com.tw/upload/images/20241004/20169195nbmANUSxq3.png

運行後我們可以看見,
當滑桿數值越低時,透明度越高,
當滑桿數值越高時,透明度越低。
https://ithelp.ithome.com.tw/upload/images/20241004/20169195CXCZMZDsHW.png
https://ithelp.ithome.com.tw/upload/images/20241004/20169195CYGHRRDzy1.png


參考資料:
https://www.youtube.com/watch?v=EfKJG_TSr8U&list=PLSCgthA1Anie_vHuCOt3hCXN6HIl8Ph8u&index=8


上一篇
DAY20. Python GUI - Tkinter佈局(Grid、Pack、Place)
下一篇
DAY22. Python GUI - Entry延伸(Text、Listbox)
系列文
python零之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言