【kivy screenmanager】RiseInTransition 使用效果及語法|Kivy基礎用法

更新 發佈閱讀 9 分鐘



本篇開始:

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



【本篇說明】在Kivy這個第三方函式庫(框架)裡面,其中screenmanager模組內建許多類別可以控制轉場效果(transition),今天說明其中的 RiseInTransition ,它的視覺效果:當切換螢幕時,新畫面會從螢幕中央擴散,以「放大、淡入」的方式出現,並由透明轉成不透明顯現出新畫面。

1.先在main.py主程式寫下程式碼

以下.py程式碼:(在vscode開啟python檔案,取名為main.py,以下簡稱.py)

from kivy.app import App
from kivy.core.window import Window
from kivy.uix.screenmanager import Screen, ScreenManager, RiseInTransition
from kivy.properties import ObjectProperty

Window.size = (290,550)

class FirstPage(Screen):
pass

class SecondPage(Screen):
pass

class Manager(ScreenManager):
tra = ObjectProperty(RiseInTransition())

class main(App):
def build(self):
return Manager()

if __name__ == "__main__":
main().run()

▲說明:

1.從kivy.app模組,導入App類別

2.從kivy.core.window模組,導入Window類別 (為了調整視窗大小)

3.從kivy.uix.screenmanager模組,導入Screen、ScreenManager、RiseInTransition類別

4.設定畫面大小為 (290,550),可參考:【kivy window】視窗大小原來可以自己決定!

5.定義FirstPage、SecondPage類,使其繼承Screen類別的屬性及方法(函式)

6.定義Manager類,使其繼承ScreenManager類別的屬性及方法(函式)

7.在Manager類別裡面,創建變數tra,使其為ObjectProperty類,並繼承RiseInTransition類,代表現在screen切換模式為RiseInTransition

8.定義main類,使其繼承App類,創建函式build(),並回傳Manager類別內容


raw-image

▲說明:main.py程式碼

2.在VSCode新增(kivy)檔案,取名 main.kv

kivy language,我使用的是"相同命名方式",如果不太懂我說的,可參考:【kivy language】如何使用 kivy language(kv)。

raw-image

▲說明:我的是放在以下路徑:桌面-> python-> Kivy-> test

3.加入main.kv內容

以下.kv程式碼:(在vscode編輯kivy檔案,取名為main.kv,以下簡稱.kv)

<FirstPage>
name: 'firstpage'

BoxLayout:
Button:
text: 'go to secondpage'
on_release: root.manager.current = 'secondpage'

<SecondPage>
name: 'secondpage'

BoxLayout:
Button:
text: 'go to firstpage'
on_release: root.manager.current = 'firstpage'

<Manager>
transition: root.tra
FirstPage:
SecondPage:

▲說明:

1.在<firstpage>裡面加入 name參數,並使其等於 'firstpage'

2.加入Button物件,使用觸發函式on_release,並呼叫 manager.current函式,用來決定目前screen呈現為secondpage,可參考:【kivy Button】經常使用的Button(按鈕)語法

3.在<SecondPage>裡面加入 name參數,並使其等於 'secondpage'

4.加入Button物件,使用觸發函式on_release,並呼叫 manager.current函式,用來決定目前screen呈現為firstpage

5.在<Manager>裡面加入transition、FirstPage 以及SecondPage6.並使transition參數等於根物件(也就是Manager類別)tra變數


raw-image

▲說明:main.kv程式碼

4.執行 Python檔案



請點擊網址觀看影片:

https://drive.google.com/drive/folders/1pVLCq0OWjvSL71qpnb59QQshj68KUEH-?usp=sharing

▲如影片1:新畫面由中心放大出現、(預設)轉換時間不到1秒,會看不出來效果

5.可改變轉換時間(註:不支援方向轉換設定)

以下.py程式碼:

from kivy.app import App
from kivy.core.window import Window
from kivy.uix.screenmanager import Screen, ScreenManager, RiseInTransition
from kivy.properties import ObjectProperty

Window.size = (290,550)

class FirstPage(Screen):
pass

class SecondPage(Screen):
pass

class Manager(ScreenManager):
# 這邊更改,加入duration參數
tra = ObjectProperty(RiseInTransition(duration=4))

class main(App):
def build(self):
return Manager()

if __name__ == "__main__":
main().run()

raw-image

▲說明:main.py程式碼

【說明】加入duration參數,轉換時間為4(s)

請點擊網址觀看影片:

https://drive.google.com/drive/folders/1pVLCq0OWjvSL71qpnb59QQshj68KUEH-?usp=sharing

▲如影片2:轉換時間4秒

6.本篇小結

了解RiseInTransition的基本語法,從中心位置以"放大"及"淡入"方式轉換screen(畫面),並透過參數(duration)可改變切換時間

本篇結束:

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


留言
avatar-img
艾肯比工程師
4會員
75內容數
主要分享應用程式開發過程、遭遇困難及解決技巧,提供給自學或獨立開發者做為參考,希望能對您們有所幫助。
艾肯比工程師的其他內容
2026/01/14
本文分享如何使用 Kivy 的 ScreenManager 模組中的 WipeTransition 來實現畫面轉場效果,透過「擦拭」的方式切換螢幕,並介紹如何設定轉場時間 (duration)。
Thumbnail
2026/01/14
本文分享如何使用 Kivy 的 ScreenManager 模組中的 WipeTransition 來實現畫面轉場效果,透過「擦拭」的方式切換螢幕,並介紹如何設定轉場時間 (duration)。
Thumbnail
2026/01/07
本篇文章將介紹 Kivy 的 ScreenManager 模組中的 FallOutTransition 轉場效果,說明如何實現畫面元素向中心淡出的視覺效果,並可透過 duration 參數調整轉場時間。
Thumbnail
2026/01/07
本篇文章將介紹 Kivy 的 ScreenManager 模組中的 FallOutTransition 轉場效果,說明如何實現畫面元素向中心淡出的視覺效果,並可透過 duration 參數調整轉場時間。
Thumbnail
2025/12/31
本篇說明 Kivy 的 ScreenManager 模組其中 SlideTransition 類別。內容涵蓋如何透過 Python 和 Kivy 為應用程式的螢幕切換加入視覺化的左右滑動效果,並示範如何調整滑動方向(上、下、左、右)與轉場持續時間 (duration),讓使用者體驗更為流暢與專業。
Thumbnail
2025/12/31
本篇說明 Kivy 的 ScreenManager 模組其中 SlideTransition 類別。內容涵蓋如何透過 Python 和 Kivy 為應用程式的螢幕切換加入視覺化的左右滑動效果,並示範如何調整滑動方向(上、下、左、右)與轉場持續時間 (duration),讓使用者體驗更為流暢與專業。
Thumbnail
看更多
你可能也想看
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
在這一章中,我們介紹了 CSS 的過渡效果和動畫效果。過渡效果使 CSS 屬性的變化更加平滑,而動畫效果則允許我們更精細地控制元素的多個屬性隨時間變化的過程。我們通過基本語法和示例展示了如何使用這些效果,並提供了一個綜合應用的實踐案例來幫助理解。這些技術可以讓你的網頁更具互動性和動態效果。
Thumbnail
在這一章中,我們介紹了 CSS 的過渡效果和動畫效果。過渡效果使 CSS 屬性的變化更加平滑,而動畫效果則允許我們更精細地控制元素的多個屬性隨時間變化的過程。我們通過基本語法和示例展示了如何使用這些效果,並提供了一個綜合應用的實踐案例來幫助理解。這些技術可以讓你的網頁更具互動性和動態效果。
Thumbnail
在這篇文章中,我們將探討如何製作章節轉場動畫,讓您的作品更具吸引力。本文包含了準備素材、定義圖片、製作簡易動畫等步驟,適合初學者進行學習和操作。我們提供了必要的資源和範例,讓您能輕鬆上手。期待透過這篇教學,能讓您在創作中達到更高的境界!
Thumbnail
在這篇文章中,我們將探討如何製作章節轉場動畫,讓您的作品更具吸引力。本文包含了準備素材、定義圖片、製作簡易動畫等步驟,適合初學者進行學習和操作。我們提供了必要的資源和範例,讓您能輕鬆上手。期待透過這篇教學,能讓您在創作中達到更高的境界!
Thumbnail
這篇教學教您如何在 Ren'py 中製作章節選擇畫面,提供素材下載以及變量設定的範例,並附加結合變量來控制章節解鎖的說明。
Thumbnail
這篇教學教您如何在 Ren'py 中製作章節選擇畫面,提供素材下載以及變量設定的範例,並附加結合變量來控制章節解鎖的說明。
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
這篇內容,將教你如何開啟新的GameMaker專案,並調整畫面佈局。也會講解,為何建議用英文語系,來進行遊戲開發。
Thumbnail
這篇內容,將教你如何開啟新的GameMaker專案,並調整畫面佈局。也會講解,為何建議用英文語系,來進行遊戲開發。
Thumbnail
這個系列的教學會列出基本上所有常見的造型和一些基礎 , 讓各位可以自行搭配造型~在這個第四篇呢 , 我們會來一起了解:常見的窗口 / 框架造型定義他們的意思加了之後有什麼效果那就讓我們開始吧!
Thumbnail
這個系列的教學會列出基本上所有常見的造型和一些基礎 , 讓各位可以自行搭配造型~在這個第四篇呢 , 我們會來一起了解:常見的窗口 / 框架造型定義他們的意思加了之後有什麼效果那就讓我們開始吧!
Thumbnail
這是關於在 Renpy 中如何自訂 Frame 的教學,包括了建立畫面、在畫面裡面加入 frame、加入造型、加入內容、修正畫面、使用自訂 Frame 等內容。
Thumbnail
這是關於在 Renpy 中如何自訂 Frame 的教學,包括了建立畫面、在畫面裡面加入 frame、加入造型、加入內容、修正畫面、使用自訂 Frame 等內容。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News