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

更新於 2024/12/18閱讀時間約 7 分鐘


本篇開始:

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

以我實際開發的APP為例,

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

命名app叫 「CountInMind」。


前言:

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


1.接續上一篇內容,這邊說明一下,在第2頁繼續使用DegreeButton加入’易"中"難’三種程度可選擇,如下圖

raw-image


2.再來參考前幾篇語法,設計出第3頁內容,這樣就能點擊難易程度後進入下一頁

2-1.新增screen類別,第3頁取名叫 Thirdscreen,並繼承類別 Screen

以下程式碼(.py)

class Thirdscreen(Screen):

     pass

2-2.在.kv,新增<Thirdscreen>底下使用FloatLayout版面

以下程式碼(.kv)

<Thirdscreen>:
name: 'third'
FloatLayout:
canvas:
Color:
rgb: (117/255, 220/255, 141/255)
Rectangle:
size: self.size
pos: self.pos
Label:
text:'這是app第3頁'
font_name: './font/TW-Kai-98_1.ttf'
bold: True
font_size: 23
color: (30/255, 30/255, 30/255)
pos_hint: {'center_x':0.5, 'center_y':0.9}
Label:
text: '© farloveway ; version: 1.0'
font_size: 10
color: (0,0,0)
pos_hint:{'center_x':0.5, 'center_y':0.04}

▲說明:加入name屬性為’third’,並參考首頁加入canvas及Label

2-3.在.kv,<SM>:新增 Thirdscreen:


<SM>:
transition:

Firstscreen:

Secondscreen:

Thirdscreen:

▲說明:SM才能使用預設的"向左"轉換畫面,轉換方式後面文章再來介紹

raw-image


3.調用類別中屬性(class property)

3-1.發現很多Label及Button color在.kv有太多重複,每當要改顏色就會覺得麻煩

3-2.建議把通用的color寫在class類別裡面,這樣就可以統一調用,但要先導入類別ColorProperty

以下程式碼(.py)

from kivy.properties import ColorProperty

3-3.如首頁,我在class Firstscreen下命名為text_color以及btn_bg_color兩種屬性

以下程式碼(.py)

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

3-4.在.kv調用Firstscreen類別中兩個屬性

以下展示部分程式碼(.kv)

Label:
text: '作品說明:...abcdef...123456789**++--//'
text_size: 230, 250
valign: 'center'
font_name: './font/TW-Kai-98_1.ttf'
font_size: 23
color: root.text_color
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代表根物件(Firstscreen類別),不是使用self物件本身喔

4.本篇小結

設定類別中屬性(class property),這樣就可直接調用,不用一一去修改.kv


為精簡篇幅,本篇所使用完整(.py)(.kv)程式碼,請接續這篇內容:09.學習Kivy:設置Button按下(release)觸發功能


本篇結束:

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

avatar-img
0會員
11內容數
主要分享應用程式開發過程、遭遇困難及解決技巧,提供給自學或獨立開發者做為參考,希望能對您們有所幫助。 工作繁忙,無法及時回覆留言請多包涵。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
艾肯比工程師 的其他內容
我的開發環境是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) 以我實際開發的APP為例, 本篇說明如何增加Label文字框、調整文字(水平垂直)位置及調整顏色。
我的開發環境是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) 以我實際開發的APP為例, 本篇說明如何增加Label文字框、調整文字(水平垂直)位置及調整顏色。
你可能也想看
Google News 追蹤
Thumbnail
本文探討了複利效應的重要性,並藉由巴菲特的投資理念,說明如何選擇穩定產生正報酬的資產及長期持有的核心理念。透過定期定額的投資方式,不僅能減少情緒影響,還能持續參與全球股市的發展。此外,文中介紹了使用國泰 Cube App 的便利性及低手續費,幫助投資者簡化投資流程,達成長期穩定增長的財務目標。
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
你好,在下最近在學習開發web,學了html css js,也得出一些心得,由於網路上已有許多教學,所以我會著重在如何開發出to do List,以及解釋我寫的程式碼。相關的教學我會直接貼網址。如果我有什麼地方出錯,或者是可以寫得更好,歡迎在下方留言,討論。 首先先介紹我的開發環境: 我用了vs
Thumbnail
本文總結和介紹了Kotlin的基本語法、註解和變數的使用,透過實例進行講解,以幫助讀者更好地理解和快速上手Kotlin語言。
Thumbnail
理解一個全新的操作環境有時候可能是一個挑戰,尤其對於那些剛開始接觸VS Code的開發者來說,即便具備一定的英文閱讀能力,可能也會對這個陌生的操作環境感到徬徨和不安。不過,沒有必要擔心,我們接下來就來一起用短短的一分鐘時間,將VS Code轉換成最熟悉的中文環境吧! 安裝繁體中文語言包 由於VS
Thumbnail
成功加入Anytype之後就可以開始探索這一個開源的筆記軟體了^_^ 開始Anytype之前..... 1.刪除所有初始物件 2.思考自己的使用需求 3.不著急學會所有功能
Thumbnail
因為最近想嘗試編碼風格,於是就選了一套比較"不嚴格"的輔助工具來摸索。 編輯器 VS CODE 框架 VUE3 打包工具 VITE 編碼風格 Standard 環境 version { "nodejs":"v18.18.0", "npm":"9.8.1" }
Thumbnail
在 Python 中,dir() 函式用於列舉對象的所有屬性和方法。這包括對象的內建屬性、方法以及自定義的屬性和方法。以下是一個簡單的示例: 列舉所有屬性與方法 class MyClass: def __init__(self): self.attribute1 = 42
Thumbnail
在使用類別創建實例時,輸入的屬性的都要定義好資料型態,例如dog_1 = Dog("Buddy", 3),有沒有輸入一段字串讓他自己判斷的方法阿? 有的就是使用classmethod: classmethod 是一種裝飾器,它用於定義類別方法。類別方法與實例方法不同,它們被綁定到類別而不是實例。
Thumbnail
IDE 升級後出現了一樣的錯誤,手上程式碼沒有 pylint black-format 檢查上不了 gitlab,我又點開了那個很小很小的 x 符號,裡面 logs 提示的解決方式是升級..
Thumbnail
本文探討了複利效應的重要性,並藉由巴菲特的投資理念,說明如何選擇穩定產生正報酬的資產及長期持有的核心理念。透過定期定額的投資方式,不僅能減少情緒影響,還能持續參與全球股市的發展。此外,文中介紹了使用國泰 Cube App 的便利性及低手續費,幫助投資者簡化投資流程,達成長期穩定增長的財務目標。
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
你好,在下最近在學習開發web,學了html css js,也得出一些心得,由於網路上已有許多教學,所以我會著重在如何開發出to do List,以及解釋我寫的程式碼。相關的教學我會直接貼網址。如果我有什麼地方出錯,或者是可以寫得更好,歡迎在下方留言,討論。 首先先介紹我的開發環境: 我用了vs
Thumbnail
本文總結和介紹了Kotlin的基本語法、註解和變數的使用,透過實例進行講解,以幫助讀者更好地理解和快速上手Kotlin語言。
Thumbnail
理解一個全新的操作環境有時候可能是一個挑戰,尤其對於那些剛開始接觸VS Code的開發者來說,即便具備一定的英文閱讀能力,可能也會對這個陌生的操作環境感到徬徨和不安。不過,沒有必要擔心,我們接下來就來一起用短短的一分鐘時間,將VS Code轉換成最熟悉的中文環境吧! 安裝繁體中文語言包 由於VS
Thumbnail
成功加入Anytype之後就可以開始探索這一個開源的筆記軟體了^_^ 開始Anytype之前..... 1.刪除所有初始物件 2.思考自己的使用需求 3.不著急學會所有功能
Thumbnail
因為最近想嘗試編碼風格,於是就選了一套比較"不嚴格"的輔助工具來摸索。 編輯器 VS CODE 框架 VUE3 打包工具 VITE 編碼風格 Standard 環境 version { "nodejs":"v18.18.0", "npm":"9.8.1" }
Thumbnail
在 Python 中,dir() 函式用於列舉對象的所有屬性和方法。這包括對象的內建屬性、方法以及自定義的屬性和方法。以下是一個簡單的示例: 列舉所有屬性與方法 class MyClass: def __init__(self): self.attribute1 = 42
Thumbnail
在使用類別創建實例時,輸入的屬性的都要定義好資料型態,例如dog_1 = Dog("Buddy", 3),有沒有輸入一段字串讓他自己判斷的方法阿? 有的就是使用classmethod: classmethod 是一種裝飾器,它用於定義類別方法。類別方法與實例方法不同,它們被綁定到類別而不是實例。
Thumbnail
IDE 升級後出現了一樣的錯誤,手上程式碼沒有 pylint black-format 檢查上不了 gitlab,我又點開了那個很小很小的 x 符號,裡面 logs 提示的解決方式是升級..