以我實際開發的APP為例,
我想做的是可以訓練基本加(減)法的心算工具。
命名app叫 「CountInMind」。
前言:
製作app第1頁:繼續編寫countinmind.kv,在<Firstscreen>底下使用FloatLayout版面。
☆目的:按下 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,並列印出'加法'
☆目的:要在首頁選擇模式(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屬性
設定類別的方法(method)及屬性(property),這樣才能調用 Firstscreen類別mode物件內容來使用。
為精簡篇幅,本篇所使用完整(.py)(.kv)程式碼,請參考第9~11篇內容
在自學路上遇到困難是很正常的事,只要堅持到底,相信就會有所成果,期勉大家一同努力。