12.學習Kivy:設定類別(class)方法(method)及屬性(property)

更新於 發佈於 閱讀時間約 6 分鐘


本篇開始:

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

以我實際開發的APP為例,

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

命名app叫 「CountInMind」。


前言:

製作app第1頁:繼續編寫countinmind.kv,在<Firstscreen>底下使用FloatLayout版面。


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

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

☆在.py設定 Firstscreen類別中 select_mode方法

以下為.py程式碼:

class Firstscreen(Screen):
# 設定顏色
text_color = ColorProperty([30/255, 30/255, 30/255]) # 深灰
btn_bg_color = ColorProperty([252/255, 236/255, 231/255]) # 米色

def select_mode(self, kind):
print(kind)

以下為.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.36}
background_normal: ''
background_color: root.btn_bg_color
on_release: root.manager.current ='second';root.select_mode('加法')

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

raw-image


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

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

☆在.py設定 Firstscreen類別中 mode物件,並且繼承這個物件類別(ObjectProperty),先導入類別

以下為.py程式碼:

from kivy.properties import ColorProperty, ObjectProperty
class Firstscreen(Screen):
# 設定顏色
text_color = ColorProperty([30/255, 30/255, 30/255]) # 深灰
btn_bg_color = ColorProperty([252/255, 236/255, 231/255]) # 米色
mode = ObjectProperty()
def select_mode(self, kind):
Firstscreen.mode = kind
print(self.mode)

▲說明:這樣就能在選擇模式(select_mode)後,將文字'加法'儲存在Firstscreen類別中mode物件

★★★注意:我試過很多方式,只有這樣才能同時儲存 mode內容,否則無法在其他類別去調用Firstscreen類別mode物件

另外,還要簡化.kv回傳內容,直接連動 Button的text文字

以下為.kv程式碼:

Button:
text:'加法'
# 為了精簡篇幅,中間程式碼請參照上面
on_release: root.manager.current = 'second'; root.select_mode(self.text)

▲說明:直接呼叫 Button物件的text屬性

raw-image

3.本篇小結

設定類別的方法(method)及屬性(property),這樣才能調用 Firstscreen類別mode物件內容來使用。


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

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

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

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


本篇結束:

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

avatar-img
0會員
13內容數
主要分享應用程式開發過程、遭遇困難及解決技巧,提供給自學或獨立開發者做為參考,希望能對您們有所幫助。 工作繁忙,無法及時回覆留言請多包涵。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
艾肯比工程師 的其他內容
我的開發環境是win11,python是3.10.7版本,kivy我設定在2.1.0版本,編碼的工具是Visual Studio Code(VS Code),本篇說明如何調用類別中屬性(class property)來運用,就不用一一去修改.kv
我的開發環境是win11,python是3.10.7版本,kivy我設定在2.1.0版本,編碼的工具是Visual Studio Code(VS Code),本篇說明如何改變Button形狀(使用DegreeButton),並加入上一篇所說on_release可轉換至下一頁。
我的開發環境是win11,python是3.10.7版本,kivy我設定在2.1.0版本,編碼的工具是Visual Studio Code(VS Code),本篇說明如何設置Button按下(release)觸發功能,添加按鈕觸發功能和畫面轉換。
我的開發環境是win11,python是3.10.7版本,kivy我設定在2.1.0版本,編碼的工具是Visual Studio Code(VS Code),本篇說明如何加入 Button物件基本功能,並自由地改變其背景顏色(background _color)。
我的開發環境是win11,python是3.10.7版本,kivy我設定在2.1.0版本,編碼的工具是Visual Studio Code(VS Code),本篇說明如何設置 Button物件基本功能,如text文字、大小、color顏色以及按鈕(size)大小、(pos)位置。
本篇開始: 我的開發環境是win11 python是3.10.7版本 kivy我設定在2.1.0版本 編碼的工具是Visual Studio Code(VS Code) 以我實際開發的APP為例, 本篇說明如何於Label內加入canvas(帆布背景)。
我的開發環境是win11,python是3.10.7版本,kivy我設定在2.1.0版本,編碼的工具是Visual Studio Code(VS Code),本篇說明如何調用類別中屬性(class property)來運用,就不用一一去修改.kv
我的開發環境是win11,python是3.10.7版本,kivy我設定在2.1.0版本,編碼的工具是Visual Studio Code(VS Code),本篇說明如何改變Button形狀(使用DegreeButton),並加入上一篇所說on_release可轉換至下一頁。
我的開發環境是win11,python是3.10.7版本,kivy我設定在2.1.0版本,編碼的工具是Visual Studio Code(VS Code),本篇說明如何設置Button按下(release)觸發功能,添加按鈕觸發功能和畫面轉換。
我的開發環境是win11,python是3.10.7版本,kivy我設定在2.1.0版本,編碼的工具是Visual Studio Code(VS Code),本篇說明如何加入 Button物件基本功能,並自由地改變其背景顏色(background _color)。
我的開發環境是win11,python是3.10.7版本,kivy我設定在2.1.0版本,編碼的工具是Visual Studio Code(VS Code),本篇說明如何設置 Button物件基本功能,如text文字、大小、color顏色以及按鈕(size)大小、(pos)位置。
本篇開始: 我的開發環境是win11 python是3.10.7版本 kivy我設定在2.1.0版本 編碼的工具是Visual Studio Code(VS Code) 以我實際開發的APP為例, 本篇說明如何於Label內加入canvas(帆布背景)。
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
理解一個全新的操作環境有時候可能是一個挑戰,尤其對於那些剛開始接觸VS Code的開發者來說,即便具備一定的英文閱讀能力,可能也會對這個陌生的操作環境感到徬徨和不安。不過,沒有必要擔心,我們接下來就來一起用短短的一分鐘時間,將VS Code轉換成最熟悉的中文環境吧! 安裝繁體中文語言包 由於VS
Thumbnail
因為最近想嘗試編碼風格,於是就選了一套比較"不嚴格"的輔助工具來摸索。 編輯器 VS CODE 框架 VUE3 打包工具 VITE 編碼風格 Standard 環境 version { "nodejs":"v18.18.0", "npm":"9.8.1" }
Thumbnail
Anytype主要分為四區塊:目錄欄(Widget組成)、主編輯畫面、導航選單、設定區。
Thumbnail
什麼是Python python是電腦程式語言的一種,如同python官方網站上的介紹 "Python是一種程式語,可讓你更快速地工作並更有效的整合系統"。簡單地說,就是你可用python這個程式語言去告訴電腦你想要作什麼,讓電腦來幫你完成你要作的事情。
Thumbnail
Python是一種易學且功能強大的程式語言,具有直譯、動態語法等特性,並擁有豐富的標準庫。它在各領域如Web開發、數據科學和人工智慧等得到廣泛應用,並被許多大公司如Google和Facebook等使用。Python還有強大的框架、豐富的交互機能、和龐大的社區。
Thumbnail
INI 檔案是一種配置檔案格式,常用於保存設定資料和組態資訊。 它使用簡單的鍵值對結構來組織資料,通常用於程式、應用程式或操作系統中的配置和初始化設定。 INI 檔案每個鍵值對包含一個名稱(鍵)和對應的值。 基本的檔案格式如下: [Section1] Key1 = Value1 Key2 =
想要開始Python語言的開發環境,有兩種常見方式,一種是下載安裝到本機端,另一種是直接在雲端執行。本文將介紹三個常見的開發工具及其安裝步驟。
Thumbnail
在 Python 中,dir() 函式用於列舉對象的所有屬性和方法。這包括對象的內建屬性、方法以及自定義的屬性和方法。以下是一個簡單的示例: 列舉所有屬性與方法 class MyClass: def __init__(self): self.attribute1 = 42
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
理解一個全新的操作環境有時候可能是一個挑戰,尤其對於那些剛開始接觸VS Code的開發者來說,即便具備一定的英文閱讀能力,可能也會對這個陌生的操作環境感到徬徨和不安。不過,沒有必要擔心,我們接下來就來一起用短短的一分鐘時間,將VS Code轉換成最熟悉的中文環境吧! 安裝繁體中文語言包 由於VS
Thumbnail
因為最近想嘗試編碼風格,於是就選了一套比較"不嚴格"的輔助工具來摸索。 編輯器 VS CODE 框架 VUE3 打包工具 VITE 編碼風格 Standard 環境 version { "nodejs":"v18.18.0", "npm":"9.8.1" }
Thumbnail
Anytype主要分為四區塊:目錄欄(Widget組成)、主編輯畫面、導航選單、設定區。
Thumbnail
什麼是Python python是電腦程式語言的一種,如同python官方網站上的介紹 "Python是一種程式語,可讓你更快速地工作並更有效的整合系統"。簡單地說,就是你可用python這個程式語言去告訴電腦你想要作什麼,讓電腦來幫你完成你要作的事情。
Thumbnail
Python是一種易學且功能強大的程式語言,具有直譯、動態語法等特性,並擁有豐富的標準庫。它在各領域如Web開發、數據科學和人工智慧等得到廣泛應用,並被許多大公司如Google和Facebook等使用。Python還有強大的框架、豐富的交互機能、和龐大的社區。
Thumbnail
INI 檔案是一種配置檔案格式,常用於保存設定資料和組態資訊。 它使用簡單的鍵值對結構來組織資料,通常用於程式、應用程式或操作系統中的配置和初始化設定。 INI 檔案每個鍵值對包含一個名稱(鍵)和對應的值。 基本的檔案格式如下: [Section1] Key1 = Value1 Key2 =
想要開始Python語言的開發環境,有兩種常見方式,一種是下載安裝到本機端,另一種是直接在雲端執行。本文將介紹三個常見的開發工具及其安裝步驟。
Thumbnail
在 Python 中,dir() 函式用於列舉對象的所有屬性和方法。這包括對象的內建屬性、方法以及自定義的屬性和方法。以下是一個簡單的示例: 列舉所有屬性與方法 class MyClass: def __init__(self): self.attribute1 = 42