本篇開始:
- 我的開發環境是win11
- python是3.10.7版本
- kivy我設定在2.1.0版本
- 編碼的工具是Visual Studio Code(VS Code)
【本篇說明】在kivy裡面,物件(widget)有很多種,比如Label、Button、Textinput、CheckBox等,今天要講的Label(或稱為"標籤")是很常用的物件(widget)之一,以下介紹固定常用的語法。
1.先在main.py寫下固定的程式碼
以下.py程式碼:(在vscode編輯python檔案,取名為main.py,以下簡稱.py)from kivy.app import App
from kivy.core.window import Window
from kivy.uix.floatlayout import FloatLayout
print(Window.size)
class firstlayout(FloatLayout):
pass
class Mainapp(App):
def build(self):
return firstlayout()
if __name__ == "__main__":
Mainapp().run()
▲說明:
1.除了導入固定類別外,還須從kivy.uix.floatlayout模組導入FloatLayout類別。
2.創建類別firstlayout,使其繼承FloatLayout類別特性,也可以使待會的 main.kv中的<firstlayout>可以沿用特性
3.創建類別Mainapp,使其繼承App類別特性

▲說明:main.py程式碼
2.加入Label text內容
以下.kv程式碼:(在vscode編輯kivy檔案,取名為main.kv,以下簡稱.kv)
Label:
text:'Welcome to my app !'
font_size: 20
bold: True
color: 'white'
▲說明:
1.text:'為顯示內容'
2.font_size:決定text字體大小
3.bold:加入text字體粗體效果
4.color:'可改變text字體顏色'
3.改變Label大小,可使用size或size_hint參數
以下.kv程式碼:(使用size參數)
Label:
size_hint: None, None
size: 500, 500
▲說明:
1.size參數為絕對大小,使用語法為 size: x, y (x為水平大小、y為垂直大小)
2.使用size參數時,需加入這段size_hint: None, None,否則會無效
3.使x=500、y=500

▲說明:因為Label的背景會看不出效果,下面我改用Button展示,兩個物件(Label、Button)的size及size_hint語法相同

▲說明:從終端機看到,預設視窗大小為1000,750【視窗調整可看這篇】,這邊用size: 500, 500
以下.kv程式碼:(使用size_hint參數)
Label:
size_hint: .3, .3 #也可以 size_hint: 0.3, 0.3
▲說明:
1.size_hint參數為相對大小,也就是與視窗大小為基準去做比對大小
2.使用語法為 size_hint:{'x': 0.a, 'y': 0.b},也可以寫成 size_hint:{'x': .a, 'y': .b},x為物件水平大小、y為物件垂直大小,這邊 0.a 意思為 0.a*視窗水平大小,0.b 意思為 0.b*視窗垂直大小
3.上述也可簡化寫成為 size_hint: 0.a, 0.b,也可以改成 size_hint: .a, .b,通常我都是這樣寫法,也就是說物件大小為0.3*視窗水平大小、0.3*視窗垂直大小

4.改變Label位置,可使用pos或 pos_hint參數
以下.kv程式碼:(使用pos參數)
Label:
pos: 300, 0
▲說明:
1.以視窗左下角為原點起算,物件部分也是以左下角為基準點起算
2.pos參數為絕對位置,使用語法為 pos: x, y (x為水平距離、y為垂直距離,可以用x、y座標來看)
3.使x=300、y=0

▲說明:預設視窗大小為1000,750,這邊用pos: 300, 0
以下.kv程式碼:(使用pos_hint參數)
Label:
pos_hint:{'x':0.3, 'y':0.3}
▲說明:
1.以視窗左下角為原點起算,物件部分也是以左下角為基準點起算
2.pos_hint參數為相對位置,使用語法為 pos_hint:{'x':0.a, 'y':0.b},x為物件水平位置、y為物件垂直位置,這邊 0.a 意思為 0.a*視窗水平大小,0.b 意思為 0.b*視窗垂直大小
3.上述也可簡化寫成為 pos_hint:{'x': .a, 'y': .b}

5.另一種我比較常用語法 pos_hint:{'center_x':0.a, 'center_y':0.b}
▲說明:
1.以視窗左下角為原點起算,但物件部分是以水平及垂直中心為基準點起算
2.center_x為物件水平中心位置、center_y為物件垂直中心位置
3.這邊就沒有展示圖片,留給讀者自行測試
6.綜合測試,執行Python檔案

▲說明:加入兩個物件,改用Button展示,可比較一下兩種不同大小及位置表達。

▲說明:完整.kv程式碼
7.本篇小結
Label經常用法就這些了!個人還滿常使用center參數的,可以參考看看。
本篇結束:
在自學路上遇到困難是很正常的事,只要堅持到底,相信就會有所成果,期勉大家一同努力。