17.學習Kivy|加入GridLayout版面,生成類似計算機的介面

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


本篇開始:

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

以我實際開發的APP為例,

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

命名app叫 「CountInMind」。


1.使用GridLayout版面,在.kv<Forthscreen >的BoxLayout下加入

以下.kv程式碼:

<Forthscreen>:
#為了精簡版面,中間程式碼省略,請參考第16
BoxLayout:
#為了精簡版面,中間程式碼省略,請參考第16
GridLayout:
rows: 5
cols: 3

▲說明:

1.GridLayout,是一種圖形版面

2.可由"行、列"圖形組成,我以 5x3圖形來組合計算機介面


2.加入Button物件(先嘗試加入3個物件看看效果)

以下.kv程式碼

GridLayout:
rows: 5
cols: 3
Button:
text: '7'
font_size: 30
size_hint: 0.2, 0.15
Button:
text: '8'
font_size: 30
size_hint: 0.2, 0.15
Button:
text: '9'
font_size: 30
size_hint: 0.2, 0.15

▲說明:

1.GridLayout版面,會先從"行"開始先排列

2.雖然有寫5x3行列,但不會預設空的,是將有的物件依序排列進去

3.size_hint: 0.2, 0.15,大小我先設定這樣,物件(單元格)大小有設定規則,這邊就不做細節說明


raw-image

▲說明:只出現3行,如果再多寫幾個物件,會依序排入,如下圖

raw-image


3.依照上述原則加入其他功能Button(清除鍵、正負鍵)

以下.kv程式碼

GridLayout:
rows: 5
cols: 3
# 為精簡篇幅,中間其他程式碼省略
Button:
text: '0'
font_size: 30
size_hint: 0.2, 0.15
Button:
text: 'C'
font_size: 30
size_hint: 0.2, 0.15
Button:
text: '+/–'
font_size: 30
size_hint: 0.2, 0.15
raw-image

▲說明:再加入一些功能(如開始鍵、提交鍵、結算鍵),這邊程式碼跟前面有講過重複,就留給讀者發揮

raw-image

▲說明:到這邊app的第四頁操作介面已經有雛型了,已經有計算機的樣子,接下來章節就要進入重點,也就是加入觸發的功能


4.接下來把要調用的顏色屬性寫進去

以下.py程式碼

class Forthscreen(Screen):
back_text_color = Firstscreen.text_color
text_color = ColorProperty('white')
number_btn_bgcolor = ColorProperty([255/255, 252/255, 221/255]) # 淺咖色
other_btn_bgcolor = ColorProperty([237/255, 171/255, 169/255]) # 駝色

再來修正上面的.kv

以下.kv程式碼

# 這邊我僅列舉兩個來呈現,其他就省略版面
Button:
text: '7'
font_size: 30
color: root.text_color
background_color: root.number_btn_bgcolor
size_hint: 0.2, 0.15

Button:
text: '+/–'
font_size: 30
color: root.text_color
background_color: root.number_btn_bgcolor
size_hint: 0.2, 0.15
raw-image

▲說明:數字鍵的顏色好像跟預設的差不多==,讀者改成自己喜歡的顏色吧

5.本篇小結

加入GridLayout版面,搭配Button物件,在第4頁生成類似計算機的介面。


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


本篇結束:

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

avatar-img
0會員
17內容數
主要分享應用程式開發過程、遭遇困難及解決技巧,提供給自學或獨立開發者做為參考,希望能對您們有所幫助。 工作繁忙,無法及時回覆留言請多包涵。
留言
avatar-img
留言分享你的想法!

































































艾肯比工程師 的其他內容
我的開發環境是win11,python是3.10.7版本,kivy我設定在2.1.0版本,編碼的工具是Visual Studio Code(VS Code),本篇說明加入BoxLayout版面,以及TextInput物件。
開發環境是win11,python是3.10.7版本,kivy我設定在2.1.0版本,編碼的工具是Visual Studio Code(VS Code),本篇說明加入RoundedButton功能及screenmanager切換畫面方式(NoTransition、SlideTransition)。
開發環境是win11,python是3.10.7版本,kivy設定在2.1.0版本,編碼的工具是Visual Studio Code,本篇說明如何設定類別(class)的方法(method)及屬性(property),運用調用屬性呈現內容,並且加入on_enter使其畫面進入就觸發函式。
我的開發環境是win11,python是3.10.7版本,kivy我設定在2.1.0版本,編碼的工具是Visual Studio Code(VS Code),本篇說明如何設定類別(class)方法(method)及屬性(property)。
我的開發環境是win11,python是3.10.7版本,kivy我設定在2.1.0版本,編碼的工具是Visual Studio Code(VS Code),本篇說明類別的方法(method)及屬性(property),這樣才能調用 Firstscreen類別mode物件內容來使用。
我的開發環境是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),本篇說明加入BoxLayout版面,以及TextInput物件。
開發環境是win11,python是3.10.7版本,kivy我設定在2.1.0版本,編碼的工具是Visual Studio Code(VS Code),本篇說明加入RoundedButton功能及screenmanager切換畫面方式(NoTransition、SlideTransition)。
開發環境是win11,python是3.10.7版本,kivy設定在2.1.0版本,編碼的工具是Visual Studio Code,本篇說明如何設定類別(class)的方法(method)及屬性(property),運用調用屬性呈現內容,並且加入on_enter使其畫面進入就觸發函式。
我的開發環境是win11,python是3.10.7版本,kivy我設定在2.1.0版本,編碼的工具是Visual Studio Code(VS Code),本篇說明如何設定類別(class)方法(method)及屬性(property)。
我的開發環境是win11,python是3.10.7版本,kivy我設定在2.1.0版本,編碼的工具是Visual Studio Code(VS Code),本篇說明類別的方法(method)及屬性(property),這樣才能調用 Firstscreen類別mode物件內容來使用。
我的開發環境是win11,python是3.10.7版本,kivy我設定在2.1.0版本,編碼的工具是Visual Studio Code(VS Code),本篇說明如何調用類別中屬性(class property)來運用,就不用一一去修改.kv
你可能也想看
Google News 追蹤
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
本文利用pyqt5,使用pyttsx3將QLineEdit(單行輸入框)的字串,轉成語音呈現出來。
Thumbnail
理解一個全新的操作環境有時候可能是一個挑戰,尤其對於那些剛開始接觸VS Code的開發者來說,即便具備一定的英文閱讀能力,可能也會對這個陌生的操作環境感到徬徨和不安。不過,沒有必要擔心,我們接下來就來一起用短短的一分鐘時間,將VS Code轉換成最熟悉的中文環境吧! 安裝繁體中文語言包 由於VS
Thumbnail
因為最近想嘗試編碼風格,於是就選了一套比較"不嚴格"的輔助工具來摸索。 編輯器 VS CODE 框架 VUE3 打包工具 VITE 編碼風格 Standard 環境 version { "nodejs":"v18.18.0", "npm":"9.8.1" }
Thumbnail
在學習C#之前,必須先建立開發環境,例如安裝Visual Studio或其他IDE,並且建立第一個C#專案。可以在Visual Studio中或使用dotnet CLI來建立各種類型的專案。
想要開始Python語言的開發環境,有兩種常見方式,一種是下載安裝到本機端,另一種是直接在雲端執行。本文將介紹三個常見的開發工具及其安裝步驟。
Thumbnail
VS code是什麼? Visual Studio Code(通常縮寫為VS Code)是微軟開發的一款免費且開源的跨平台文本編輯器。它支持廣泛的編程語言,提供了一系列先進功能和插件,讓開發者能更有效率地進行代碼編寫。VS Code擁有優秀的代碼自動完成、錯誤偵測、內建的版本控制系統等特性。
Thumbnail
當我們在撰寫一套系統的時候, 總是會提供一個介面讓使用者來觸發功能模組並回傳使用者所需的請求, 而傳統的安裝包模式總是太侷限, 需要個別主機獨立安裝, 相當繁瑣, 但隨著時代的演進與互聯網的崛起, 大部分的工作都可以藉由網頁端、裝置端來觸發, 而伺服端則是負責接收指令、運算與回傳結果, 雲端
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
本文利用pyqt5,使用pyttsx3將QLineEdit(單行輸入框)的字串,轉成語音呈現出來。
Thumbnail
理解一個全新的操作環境有時候可能是一個挑戰,尤其對於那些剛開始接觸VS Code的開發者來說,即便具備一定的英文閱讀能力,可能也會對這個陌生的操作環境感到徬徨和不安。不過,沒有必要擔心,我們接下來就來一起用短短的一分鐘時間,將VS Code轉換成最熟悉的中文環境吧! 安裝繁體中文語言包 由於VS
Thumbnail
因為最近想嘗試編碼風格,於是就選了一套比較"不嚴格"的輔助工具來摸索。 編輯器 VS CODE 框架 VUE3 打包工具 VITE 編碼風格 Standard 環境 version { "nodejs":"v18.18.0", "npm":"9.8.1" }
Thumbnail
在學習C#之前,必須先建立開發環境,例如安裝Visual Studio或其他IDE,並且建立第一個C#專案。可以在Visual Studio中或使用dotnet CLI來建立各種類型的專案。
想要開始Python語言的開發環境,有兩種常見方式,一種是下載安裝到本機端,另一種是直接在雲端執行。本文將介紹三個常見的開發工具及其安裝步驟。
Thumbnail
VS code是什麼? Visual Studio Code(通常縮寫為VS Code)是微軟開發的一款免費且開源的跨平台文本編輯器。它支持廣泛的編程語言,提供了一系列先進功能和插件,讓開發者能更有效率地進行代碼編寫。VS Code擁有優秀的代碼自動完成、錯誤偵測、內建的版本控制系統等特性。
Thumbnail
當我們在撰寫一套系統的時候, 總是會提供一個介面讓使用者來觸發功能模組並回傳使用者所需的請求, 而傳統的安裝包模式總是太侷限, 需要個別主機獨立安裝, 相當繁瑣, 但隨著時代的演進與互聯網的崛起, 大部分的工作都可以藉由網頁端、裝置端來觸發, 而伺服端則是負責接收指令、運算與回傳結果, 雲端