【kivy property】StringProperty 屬性的用法|Kivy基礎用法

更新 發佈閱讀 8 分鐘


本篇開始:

  • 我的開發環境是win11
  • python是3.10.7版本
  • kivy我設定在2.1.0版本
  • 編碼的工具是Visual Studio Code(VS Code)



【本篇說明】在kivy裡面,屬性(property)有分很多種,比如說 NumericProperty、ColorProperty、ObjectProperty、BooleanProperty 等等,這次要分享的是 StringProperty。

StringProperty 在中文翻譯為"字串屬性",是專門用來存放"字串",預設值為""(空字串),通常屬性會在類別中宣告使用,不同於"變數"宣告,變數只能存放數字、字串以及布林值。

以下使用基本語法:

1.寫下固定的程式碼

以下.py程式碼:(在vscode開啟python檔案,取名為main.py,以下簡稱.py)

from kivy.app import App
from kivy.uix.floatlayout import FloatLayout

class firstlayout(FloatLayout):
pass

class Mainapp(App):
def build(self):
return firstlayout()

if __name__ == "__main__":
Mainapp().run()

▲說明:

1.從 kivy.uix.floatlayout這個模組導入 FloatLayout類別 (如果還沒看過,可參考:【kivy layout】FloatLayout類別的使用方法)

2.創建一個class 類別取名為 firstlayout(可自取無限定命名),然後在()填入 FloatLayout,目的是為了繼承 FloatLayout類別所有特性

3.這邊 kivy language(kv),我使用的是"相同命名方式",如果不太懂我說的,可先參考這篇:【kivy language】如何使用 kivy language(kv)



vocus|新世代的創作平台

▲說明:main.py程式碼


2.將屬性及函式寫入 Python檔案

1.以下 main.py程式碼:

from kivy.properties import StringProperty

▲說明:導入屬性StringProperty

2.改寫 firstlayout類別內容

class firstlayout(FloatLayout):
mode = StringProperty("minus")
degree = StringProperty("easy")

▲說明:

1.宣告屬性 mode,將字串 "minus"存入

2.宣告屬性 degree,將字串 "easy"存入

3.以上兩個屬性,為了待會調用其他類別屬性而展示


vocus|新世代的創作平台

▲說明:main.py程式碼

3.創建 seconflayout類別內容

class secondlayout(FloatLayout):
how_to_play = StringProperty()
mode = firstlayout.mode
degree = firstlayout.degree

def update_label(self):
self.how_to_play = f"Welcome~\n you choose mode is [{self.mode}]\n you choose degree is [{self.degree}]"

def on_how_to_play(self, instance, value):
print("how_to_play屬性值改變了,為:", value)

▲說明:

1.創建類別,取名叫 secondlayout()

2.宣告屬性 how_to_play,預設值為""(空字串)

3.宣告屬性 mode,將調用的 firstlayout.mode屬性值存入,調用語法為【類別名稱.屬性名稱】

4.宣告屬性 degree,將調用的 firstlayout.degree屬性值存入,調用語法為【類別名稱.屬性名稱】

5.定義函式 update_label,()裡面加入 self

6.使本身的 how_to_play屬性值為以上格式化字串內容,其中 {self.mode}、{self.degree}為本身兩個 mode、degree屬性值

7.這時,how_to_play屬性值已不是原先的"",屬性特有的觸發事件,當屬性值發生改變時,就能觸發函式,命名時必須是on_加上 how_to_play

8.定義函式 on_how_to_play(),()裡面加入 self, instance, value 這3個參數,其中 value為 how_to_play後來存入的屬性值

9.列印出 how_to_play屬性值來確認,主要是為了複核用


vocus|新世代的創作平台

▲說明:main.py程式碼

4.別忘了要改成回傳 secondlayout()

return secondlayout()
vocus|新世代的創作平台


3.在 VSCode新增(kivy)檔案,我取名 main.kv,為了符合上面說的"相同命名方式",並且放在同資料夾內

vocus|新世代的創作平台

▲說明:我的是放在以下路徑:桌面-> python-> Kivy-> test


4.寫入 main.kv程式碼

以下.kv程式碼:(在vscode編輯 main.kv,簡稱.kv)

<secondlayout>:    
Button:
text: 'show instructions'
size_hint: .2, .2
pos: 400, 50
on_press: root.update_label()

Label:
text:root.how_to_play
font_size: 20
bold: True
size_hint: .3, .3
pos_hint: {'center_x':.5, 'center_y':.7}

▲說明:

1.有關 Button及 Label基本使用,請參考[【kivy Label】經常使用的Label(標籤)語法][【kivy Button】經常使用的Button(按鈕)語法]

2.Button,當按下時,呼叫函式 update_label()

3.Label,使 text參數為 root根物件(也就是類別 secondlayout)的 how_to_play屬性值



vocus|新世代的創作平台

▲說明:main.kv程式碼


5.執行 Python檔案

vocus|新世代的創作平台

▲說明:按下 Button時,屬性值改變了,呼叫函式使 Label字體改變

vocus|新世代的創作平台

▲說明:透過終端機列印,確認 how_to_play屬性值

6.本篇小結

雖然"變數"跟"字串屬性"都可存入字串,不過透過【調用屬性方式】,就可以運用別個類別的屬性值,在程式碼維護也會比較方便。


本篇結束:

在自學路上遇到困難是很正常的事,只要堅持到底,相信就會有所成果,期勉大家一同努力。


留言
avatar-img
艾肯比工程師
4會員
77內容數
主要分享應用程式開發過程、遭遇困難及解決技巧,提供給自學或獨立開發者做為參考,希望能對您們有所幫助。
艾肯比工程師的其他內容
2025/11/28
本篇分享 Kivy 的 ColorProperty(顏色屬性),說明其與變數的差異,以及如何在 Python 和 Kivy Language (kv) 中應用。透過實際範例,展示如何設定顏色、觸發事件,並解答為何使用屬性而非變數。
Thumbnail
2025/11/28
本篇分享 Kivy 的 ColorProperty(顏色屬性),說明其與變數的差異,以及如何在 Python 和 Kivy Language (kv) 中應用。透過實際範例,展示如何設定顏色、觸發事件,並解答為何使用屬性而非變數。
Thumbnail
2025/11/20
本篇文章探討 Kivy 框架中的 NumericProperty,並透過實例學習如何宣告屬性,並利用屬性變動觸發函式,實現使用者介面的動態更新。
Thumbnail
2025/11/20
本篇文章探討 Kivy 框架中的 NumericProperty,並透過實例學習如何宣告屬性,並利用屬性變動觸發函式,實現使用者介面的動態更新。
Thumbnail
2025/11/13
本篇文章延續 Kivy TextInput 物件的基本介紹,如何利用觸發函式 ,實現將使用者輸入的文字即時顯示在 Label 元件中的進階功能。
Thumbnail
2025/11/13
本篇文章延續 Kivy TextInput 物件的基本介紹,如何利用觸發函式 ,實現將使用者輸入的文字即時顯示在 Label 元件中的進階功能。
Thumbnail
看更多
你可能也想看
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
在 Python 中,print( ) 函數用於將結果輸出到螢幕上。當你嘗試將不同資料型別(例如字串和數字)混合在一起輸出時,print( )函數無法直接處理這些不同型別的資料,因此你需要先將它們轉換為相同的資料型別。通常,這意味著需要將數字轉換為字串型別,以便與其他字串一同輸出。 雖然我們也可以
Thumbnail
在 Python 中,print( ) 函數用於將結果輸出到螢幕上。當你嘗試將不同資料型別(例如字串和數字)混合在一起輸出時,print( )函數無法直接處理這些不同型別的資料,因此你需要先將它們轉換為相同的資料型別。通常,這意味著需要將數字轉換為字串型別,以便與其他字串一同輸出。 雖然我們也可以
Thumbnail
f字符串(f-string)在Python 3.6版本引入了新特性,可以更方便地格式化字符串。本文介紹了f-string的基本使用方法,以及表達式、運算符、格式化控制、字典和列表的應用,以及調用方法和函數等。f-string提供了一種更靈活的方式,使你能夠控制字符串的外觀,以滿足不同情況下的需求。
Thumbnail
f字符串(f-string)在Python 3.6版本引入了新特性,可以更方便地格式化字符串。本文介紹了f-string的基本使用方法,以及表達式、運算符、格式化控制、字典和列表的應用,以及調用方法和函數等。f-string提供了一種更靈活的方式,使你能夠控制字符串的外觀,以滿足不同情況下的需求。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
在 Python 中,dir() 函式用於列舉對象的所有屬性和方法。這包括對象的內建屬性、方法以及自定義的屬性和方法。以下是一個簡單的示例: 列舉所有屬性與方法 class MyClass: def __init__(self): self.attribute1 = 42
Thumbnail
在 Python 中,dir() 函式用於列舉對象的所有屬性和方法。這包括對象的內建屬性、方法以及自定義的屬性和方法。以下是一個簡單的示例: 列舉所有屬性與方法 class MyClass: def __init__(self): self.attribute1 = 42
Thumbnail
INI 檔案是一種配置檔案格式,常用於保存設定資料和組態資訊。 它使用簡單的鍵值對結構來組織資料,通常用於程式、應用程式或操作系統中的配置和初始化設定。 INI 檔案每個鍵值對包含一個名稱(鍵)和對應的值。 基本的檔案格式如下: [Section1] Key1 = Value1 Key2 =
Thumbnail
INI 檔案是一種配置檔案格式,常用於保存設定資料和組態資訊。 它使用簡單的鍵值對結構來組織資料,通常用於程式、應用程式或操作系統中的配置和初始化設定。 INI 檔案每個鍵值對包含一個名稱(鍵)和對應的值。 基本的檔案格式如下: [Section1] Key1 = Value1 Key2 =
Thumbnail
Python是一種易學且功能強大的程式語言,具有直譯、動態語法等特性,並擁有豐富的標準庫。它在各領域如Web開發、數據科學和人工智慧等得到廣泛應用,並被許多大公司如Google和Facebook等使用。Python還有強大的框架、豐富的交互機能、和龐大的社區。
Thumbnail
Python是一種易學且功能強大的程式語言,具有直譯、動態語法等特性,並擁有豐富的標準庫。它在各領域如Web開發、數據科學和人工智慧等得到廣泛應用,並被許多大公司如Google和Facebook等使用。Python還有強大的框架、豐富的交互機能、和龐大的社區。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News