15.學習Kivy:加入RoundedButton及screenmanager切換畫面方式

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


本篇開始:

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

以我實際開發的APP為例,

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

命名app叫 「CountInMind」。


1.這篇要說明screenmanager切換畫面方式,目前還在app第3頁,延續上篇,繼續編輯countinmind.kv,在<Thirdscreen>下 FloatLayout版面,加入RoundedButton功能

☆目的:建立另一個不同形狀 Button,有別於之前所分享的 DegreeButton(不過語法及功能相似)

以下為.kv程式碼:

RoundedButton:
text: '進入測驗畫面'
font_name: './font/TW-Kai-98_1.ttf'
font_size:28
color: root.text_color
size_hint: 0.6, 0.25
pos_hint: {'center_x':0.5, 'center_y':0.3}
on_release: root.manager.current = 'forth'
#這邊沒有縮排(也就是沒有 tab鍵)
<RoundedButton@Button>
background_normal: ''
background_color: (0,0,0,0)
canvas.before:
Color:
rgb: (252/255, 236/255, 231/255)
RoundedRectangle:
size: self.size
pos: self.pos
radius: [38]

▲說明:以上 RoundedButton的語法,可參考第10篇內容。

raw-image

☆補充:若要說跟 DegreeButton哪邊不同?我認為 DegreeButton:可調整弧度變成橢圓或圓形,RoundedButton:四個角弧度變圓。


2.透過screenmanager執行畫面切換方式(舉例我有使用的兩種,還有其他轉換方式,可參考其他網頁介紹)

2-1.NoTransition:無轉換效果

以下.py程式碼

要先在前面導入 NoTransition類別

#要先在前面導入 NoTransition類別
from kivy.uix.screenmanager import Screen, ScreenManager, NoTransition
class SM(ScreenManager):
#設立a1物件,使其 duration=1,代表轉換時間為1
a1 = ObjectProperty(NoTransition(duration=1))

以下.kv程式碼

<SM>:
#新增根物件的a1物件(變數)
transition:root.a1

▲說明:因為無轉換效果無法截圖表示,這邊就請讀者自行測試


2-2.SlideTransition:滑行轉換畫面

以下.py程式碼

#要先在前面導入 SlideTransition類別
from kivy.uix.screenmanager import Screen, ScreenManager, NoTransition, SlideTransition
class SM(ScreenManager):
#設立a2物件,使其 duration=3、direction = 'right',代表轉換時間為3秒、方向為向右滑行
a2 = ObjectProperty(SlideTransition(duration=3, direction = 'right'))

以下.kv程式碼

<SM>:
#改成用根物件的a2物件(變數)
transition:root.a2
raw-image

▲說明:第1頁切換至第2頁進行中

raw-image

▲說明:第2頁切換至第3頁進行中

▲▲▲說明:預設是使用 SlideTransition(direction = 'left'),也可以改變秒數以及方向('up'.'down'等)

3.本篇小結

加入RoundedButton功能及screenmanager切換畫面方式(NoTransition、SlideTransition)。


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


本篇結束:

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

avatar-img
0會員
15內容數
主要分享應用程式開發過程、遭遇困難及解決技巧,提供給自學或獨立開發者做為參考,希望能對您們有所幫助。 工作繁忙,無法及時回覆留言請多包涵。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
艾肯比工程師 的其他內容
開發環境是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),本篇說明如何改變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,本篇說明如何設定類別(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),本篇說明如何改變Button形狀(使用DegreeButton),並加入上一篇所說on_release可轉換至下一頁。
我的開發環境是win11,python是3.10.7版本,kivy我設定在2.1.0版本,編碼的工具是Visual Studio Code(VS Code),本篇說明如何設置Button按下(release)觸發功能,添加按鈕觸發功能和畫面轉換。
你可能也想看
Google News 追蹤
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
這篇內容,將教你如何開啟新的GameMaker專案,並調整畫面佈局。也會講解,為何建議用英文語系,來進行遊戲開發。
from win32com.client import Dispatch path = "D:\PROGRAMMING\PythonCode\pypptx\image1.png" # 启动PowerPoint应用程序 ppt = Dispatch('PowerPoint.Applicatio
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
VS code是什麼? Visual Studio Code(通常縮寫為VS Code)是微軟開發的一款免費且開源的跨平台文本編輯器。它支持廣泛的編程語言,提供了一系列先進功能和插件,讓開發者能更有效率地進行代碼編寫。VS Code擁有優秀的代碼自動完成、錯誤偵測、內建的版本控制系統等特性。
Thumbnail
本篇文章將教你如何使用Python和PyQt5來建立一個GUI應用程式。PyQt5是一個相當流行的Python模組,透過這個文章你將學習如何使用它來建立一個互動式的應用程式。
Thumbnail
IDE 升級後出現了一樣的錯誤,手上程式碼沒有 pylint black-format 檢查上不了 gitlab,我又點開了那個很小很小的 x 符號,裡面 logs 提示的解決方式是升級..
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
這篇內容,將教你如何開啟新的GameMaker專案,並調整畫面佈局。也會講解,為何建議用英文語系,來進行遊戲開發。
from win32com.client import Dispatch path = "D:\PROGRAMMING\PythonCode\pypptx\image1.png" # 启动PowerPoint应用程序 ppt = Dispatch('PowerPoint.Applicatio
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
VS code是什麼? Visual Studio Code(通常縮寫為VS Code)是微軟開發的一款免費且開源的跨平台文本編輯器。它支持廣泛的編程語言,提供了一系列先進功能和插件,讓開發者能更有效率地進行代碼編寫。VS Code擁有優秀的代碼自動完成、錯誤偵測、內建的版本控制系統等特性。
Thumbnail
本篇文章將教你如何使用Python和PyQt5來建立一個GUI應用程式。PyQt5是一個相當流行的Python模組,透過這個文章你將學習如何使用它來建立一個互動式的應用程式。
Thumbnail
IDE 升級後出現了一樣的錯誤,手上程式碼沒有 pylint black-format 檢查上不了 gitlab,我又點開了那個很小很小的 x 符號,裡面 logs 提示的解決方式是升級..