vocus logo

方格子 vocus

13【python kivy app 開發】導入NumericProperty,定義類別函式變數,同時調用其他類別變數

更新 發佈閱讀 7 分鐘


本篇開始:

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

以我實際開發的APP為例,

我想做的是可以訓練基本加(減)法的心算工具。

命名app叫 「CountInMind」。


1.接續上一篇,繼續編寫countinmind.kv,在<Firstscreen>底下使用FloatLayout版面,將其他模式(減法、加減法)完成

☆目的:按下其他 Button同時呼叫類別中方法,回傳列印出訊息,並將模式內容儲存下來在後面他用(要在app第3頁可以綜合顯示出前面選擇的內容)

.py程式碼同上一篇

以下為.kv程式碼:

Button:
text:'減法'
font_name: './font/TW-Kai-98_1.ttf'
font_size: 23
color: root.text_color
size_hint:0.3, 0.1
pos_hint: {'center_x':0.5, 'center_y':0.25}
background_normal: ''
background_color: root.btn_bg_color
on_release: root.manager.current = 'second'; root.select_mode('減法【一開始為30】')
Button:
text:'加(減)法'
font_name: './font/TW-Kai-98_1.ttf'
font_size: 23
color: root.text_color
size_hint:0.3, 0.1
pos_hint: {'center_x':0.5, 'center_y':0.14}
background_normal: ''
background_color: root.btn_bg_color
on_release: root.manager.current = 'second'; root.select_mode(self.text)

▲說明:root代表根物件(Firstscreen類別),呼叫類別中 select_mode方法,並將文字回傳至該方法的參數kind,並列印出來

raw-image

▲說明:列印出"減法【一開始為30】"

raw-image

▲說明:列印出"加(減)法"

2.開發第2頁:繼續編寫countinmind.kv,在<Secondscreen>底下使用FloatLayout版面

2-1.設定類別的方法(method)

☆目的:按下 Button同時呼叫類別中方法,並回傳列印出訊息

☆在.py設定Secondscreen類別中 select_degree方法

以下為.py程式碼:

class Secondscreen(Screen):
text_color = Firstscreen.text_color
btn_bg_color = Firstscreen.btn_bg_color

def select_degree(self, num):
print(num)

▲說明:使用調用屬性,從 Firstscreen類別調用 text_color屬性內容來用,btn_bg_color屬性也調用。另外定義 select_degree這個方法。

以下為.kv程式碼:

DegreeButton:
text: '易'
font_name: './font/TW-Kai-98_1.ttf'
font_size: 23
color: root.text_color
size_hint: 0.2, 0.15
pos_hint: {'center_x':0.27, 'center_y':0.3}
on_release: root.manager.current = 'third'; root.select_degree(4)

▲說明:root代表根物件(Secondscreen類別),呼叫類別中 select_degree方法,並將'4'回傳至select_degree的參數num,並列印出來。

raw-image

▲說明:按下DegreeButton(易)後,畫面切換到app第3頁,並列印出'4'

2-2.設定類別的屬性(property)

☆目的:想要在首頁選擇模式(select_degree)後,能將難易度內容儲存下來在後面他用(要在app第3頁可以綜合顯示出前面選擇的內容)

☆在.py設定 Secondscreen類別degree物件,導入類別並且繼承(NumericProperty)

以下為.py程式碼:

from kivy.properties import ColorProperty, ObjectProperty, NumericProperty
class Secondscreen(Screen):
text_color = Firstscreen.text_color
btn_bg_color = Firstscreen.btn_bg_color
description_of_degree = "程度說明:\n(易)適合國小中年級\n(中)適合國小高年級\n(難)適合國中一年級\n\n\n~~請點擊以下程度~~"
degree = NumericProperty()
def select_degree(self, num):
# 可調用該類別(select_degree)方法內屬性(degree)
Secondscreen.degree = num
print(self.degree) # 內外都會變
raw-image

▲說明:將4同時儲存在degree這個物件,並列印出來確認


3.本篇小結

設定類別的方法(method)及屬性(property),試過很多語法,只有這樣才能調用Secondscreen類別degree內容,否則會無法正確調用。


為精簡篇幅,本篇所使用完整(.py)(.kv)程式碼,請參考第9~11篇內容

09.學習Kivy:設置Button按下(release)觸發功能

10.學習Kivy:改變Button形狀(使用DegreeButton)

11.學習Kivy:調用類別中屬性(class property)來運用


本篇結束:

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

留言
avatar-img
艾肯比工程師
4會員
77內容數
主要分享應用程式開發過程、遭遇困難及解決技巧,提供給自學或獨立開發者做為參考,希望能對您們有所幫助。
艾肯比工程師的其他內容
2025/04/30
這篇文章記錄了使用Kivy框架開發一個心算訓練APP的過程,其中介紹使用Python程式碼產生隨機數字,並在介面上顯示。文章以我開發 CountInMind APP為例,說明如何隨機數字生成、避免數字重複以及加減法計算等功能。本篇為求精簡,完整的程式碼請參考先前文章中分享內容。
Thumbnail
2025/04/30
這篇文章記錄了使用Kivy框架開發一個心算訓練APP的過程,其中介紹使用Python程式碼產生隨機數字,並在介面上顯示。文章以我開發 CountInMind APP為例,說明如何隨機數字生成、避免數字重複以及加減法計算等功能。本篇為求精簡,完整的程式碼請參考先前文章中分享內容。
Thumbnail
2025/04/23
這篇文章記錄了使用Kivy框架開發一個心算訓練APP的過程,其中介紹使用Python程式碼產生隨機數字,並在介面上顯示。文章以我開發 CountInMind APP為例,說明如何隨機數字生成、避免數字重複以及減法計算等功能。本篇為求精簡,完整的程式碼請參考先前文章中分享內容。
Thumbnail
2025/04/23
這篇文章記錄了使用Kivy框架開發一個心算訓練APP的過程,其中介紹使用Python程式碼產生隨機數字,並在介面上顯示。文章以我開發 CountInMind APP為例,說明如何隨機數字生成、避免數字重複以及減法計算等功能。本篇為求精簡,完整的程式碼請參考先前文章中分享內容。
Thumbnail
2025/04/18
這篇文章記錄了使用Kivy框架開發一個心算訓練APP的過程,其中介紹使用Python程式碼產生隨機數字,並在介面上顯示。文章以我開發 CountInMind APP為例,說明如何隨機數字生成、避免數字重複以及加法總和計算等功能。本篇為求精簡,完整的程式碼請參考先前文章中分享內容。
Thumbnail
2025/04/18
這篇文章記錄了使用Kivy框架開發一個心算訓練APP的過程,其中介紹使用Python程式碼產生隨機數字,並在介面上顯示。文章以我開發 CountInMind APP為例,說明如何隨機數字生成、避免數字重複以及加法總和計算等功能。本篇為求精簡,完整的程式碼請參考先前文章中分享內容。
Thumbnail
看更多
你可能也想看
Thumbnail
賽勒布倫尼科夫以流亡處境回望蘇聯電影導演帕拉贊諾夫的舞台作品,以十段寓言式殘篇,重新拼貼記憶、暴力與美學,並將審查、政治犯、戰爭陰影與「形式即政治」的劇場傳統推到台前。本文聚焦於《傳奇:帕拉贊諾夫的十段殘篇》的舞台美術、音樂與多重扮演策略,嘗試解析極權底下不可言說之事,將如何成為可被觀看的公共發聲。
Thumbnail
賽勒布倫尼科夫以流亡處境回望蘇聯電影導演帕拉贊諾夫的舞台作品,以十段寓言式殘篇,重新拼貼記憶、暴力與美學,並將審查、政治犯、戰爭陰影與「形式即政治」的劇場傳統推到台前。本文聚焦於《傳奇:帕拉贊諾夫的十段殘篇》的舞台美術、音樂與多重扮演策略,嘗試解析極權底下不可言說之事,將如何成為可被觀看的公共發聲。
Thumbnail
柏林劇團在 2026 北藝嚴選,再次帶來由布萊希特改編的經典劇目《三便士歌劇》(The Threepenny Opera),導演巴里・柯斯基以舞台結構與舞台調度,重新向「疏離」進行提問。本文將從觀眾慾望作為戲劇內核,藉由沉浸與疏離的辯證,解析此作如何再次照見觀眾自身的位置。
Thumbnail
柏林劇團在 2026 北藝嚴選,再次帶來由布萊希特改編的經典劇目《三便士歌劇》(The Threepenny Opera),導演巴里・柯斯基以舞台結構與舞台調度,重新向「疏離」進行提問。本文將從觀眾慾望作為戲劇內核,藉由沉浸與疏離的辯證,解析此作如何再次照見觀眾自身的位置。
Thumbnail
本文深入解析臺灣劇團「晃晃跨幅町」對易卜生經典劇作《海妲.蓋柏樂》的詮釋,從劇本歷史、聲響與舞臺設計,到演員的主體創作方法,探討此版本如何讓經典劇作在當代劇場語境下煥發新生,滿足現代觀眾的觀看慾望。
Thumbnail
本文深入解析臺灣劇團「晃晃跨幅町」對易卜生經典劇作《海妲.蓋柏樂》的詮釋,從劇本歷史、聲響與舞臺設計,到演員的主體創作方法,探討此版本如何讓經典劇作在當代劇場語境下煥發新生,滿足現代觀眾的觀看慾望。
Thumbnail
《轉轉生》為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,融合舞蹈、音樂、時尚和視覺藝術,透過身體、服裝與群舞結構,回應殖民歷史、城市經驗與祖靈記憶的交錯。本文將從服裝設計、身體語彙與「輪迴」的「誕生—死亡—重生」結構出發,分析《轉轉生》如何以當代目光,形塑去殖民視角的奈及利亞歷史。
Thumbnail
《轉轉生》為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,融合舞蹈、音樂、時尚和視覺藝術,透過身體、服裝與群舞結構,回應殖民歷史、城市經驗與祖靈記憶的交錯。本文將從服裝設計、身體語彙與「輪迴」的「誕生—死亡—重生」結構出發,分析《轉轉生》如何以當代目光,形塑去殖民視角的奈及利亞歷史。
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
理解一個全新的操作環境有時候可能是一個挑戰,尤其對於那些剛開始接觸VS Code的開發者來說,即便具備一定的英文閱讀能力,可能也會對這個陌生的操作環境感到徬徨和不安。不過,沒有必要擔心,我們接下來就來一起用短短的一分鐘時間,將VS Code轉換成最熟悉的中文環境吧! 安裝繁體中文語言包 由於VS
Thumbnail
理解一個全新的操作環境有時候可能是一個挑戰,尤其對於那些剛開始接觸VS Code的開發者來說,即便具備一定的英文閱讀能力,可能也會對這個陌生的操作環境感到徬徨和不安。不過,沒有必要擔心,我們接下來就來一起用短短的一分鐘時間,將VS Code轉換成最熟悉的中文環境吧! 安裝繁體中文語言包 由於VS
Thumbnail
因為最近想嘗試編碼風格,於是就選了一套比較"不嚴格"的輔助工具來摸索。 編輯器 VS CODE 框架 VUE3 打包工具 VITE 編碼風格 Standard 環境 version { "nodejs":"v18.18.0", "npm":"9.8.1" }
Thumbnail
因為最近想嘗試編碼風格,於是就選了一套比較"不嚴格"的輔助工具來摸索。 編輯器 VS CODE 框架 VUE3 打包工具 VITE 編碼風格 Standard 環境 version { "nodejs":"v18.18.0", "npm":"9.8.1" }
Thumbnail
什麼是Python python是電腦程式語言的一種,如同python官方網站上的介紹 "Python是一種程式語,可讓你更快速地工作並更有效的整合系統"。簡單地說,就是你可用python這個程式語言去告訴電腦你想要作什麼,讓電腦來幫你完成你要作的事情。
Thumbnail
什麼是Python python是電腦程式語言的一種,如同python官方網站上的介紹 "Python是一種程式語,可讓你更快速地工作並更有效的整合系統"。簡單地說,就是你可用python這個程式語言去告訴電腦你想要作什麼,讓電腦來幫你完成你要作的事情。
Thumbnail
Python是一種易學且功能強大的程式語言,具有直譯、動態語法等特性,並擁有豐富的標準庫。它在各領域如Web開發、數據科學和人工智慧等得到廣泛應用,並被許多大公司如Google和Facebook等使用。Python還有強大的框架、豐富的交互機能、和龐大的社區。
Thumbnail
Python是一種易學且功能強大的程式語言,具有直譯、動態語法等特性,並擁有豐富的標準庫。它在各領域如Web開發、數據科學和人工智慧等得到廣泛應用,並被許多大公司如Google和Facebook等使用。Python還有強大的框架、豐富的交互機能、和龐大的社區。
Thumbnail
INI 檔案是一種配置檔案格式,常用於保存設定資料和組態資訊。 它使用簡單的鍵值對結構來組織資料,通常用於程式、應用程式或操作系統中的配置和初始化設定。 INI 檔案每個鍵值對包含一個名稱(鍵)和對應的值。 基本的檔案格式如下: [Section1] Key1 = Value1 Key2 =
Thumbnail
INI 檔案是一種配置檔案格式,常用於保存設定資料和組態資訊。 它使用簡單的鍵值對結構來組織資料,通常用於程式、應用程式或操作系統中的配置和初始化設定。 INI 檔案每個鍵值對包含一個名稱(鍵)和對應的值。 基本的檔案格式如下: [Section1] Key1 = Value1 Key2 =
Thumbnail
VS code是什麼? Visual Studio Code(通常縮寫為VS Code)是微軟開發的一款免費且開源的跨平台文本編輯器。它支持廣泛的編程語言,提供了一系列先進功能和插件,讓開發者能更有效率地進行代碼編寫。VS Code擁有優秀的代碼自動完成、錯誤偵測、內建的版本控制系統等特性。
Thumbnail
VS code是什麼? Visual Studio Code(通常縮寫為VS Code)是微軟開發的一款免費且開源的跨平台文本編輯器。它支持廣泛的編程語言,提供了一系列先進功能和插件,讓開發者能更有效率地進行代碼編寫。VS Code擁有優秀的代碼自動完成、錯誤偵測、內建的版本控制系統等特性。
Thumbnail
在 Python 中,dir() 函式用於列舉對象的所有屬性和方法。這包括對象的內建屬性、方法以及自定義的屬性和方法。以下是一個簡單的示例: 列舉所有屬性與方法 class MyClass: def __init__(self): self.attribute1 = 42
Thumbnail
在 Python 中,dir() 函式用於列舉對象的所有屬性和方法。這包括對象的內建屬性、方法以及自定義的屬性和方法。以下是一個簡單的示例: 列舉所有屬性與方法 class MyClass: def __init__(self): self.attribute1 = 42
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News