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

更新 發佈閱讀 9 分鐘



本篇開始:

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



【本篇說明】】在Kivy這個第三方函式庫(框架)裡面,其中screenmanager模組內建許多類別可以控制轉場效果(Transition),今天分享其中的 FallOutTransition ,它的視覺效果是:當切換螢幕時,目前的畫面像是「掉進背景」,逐漸向中間縮小而消失,同時以顯現出新畫面。

先在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, FallOutTransition
from kivy.properties import ObjectProperty

Window.size = (290,550)

class FirstPage(Screen):
pass

class SecondPage(Screen):
pass

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

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、FallOutTransition類別

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

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

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

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

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


raw-image

▲說明:main.py程式碼


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

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

raw-image

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


加入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 以及SecondPage

6.並在transition參數等於根物件(也就是Manager類別)的tra變數



raw-image

▲說明:main.kv程式碼


執行 Python檔案

請點擊網址觀看影片:

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

▲如影片1:舊畫面向中心位置消失、(預設)轉換時間不到1秒


可改變轉換時間(註:無法改變轉換方向)

以下.py程式碼:

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

Window.size = (290,550)

class FirstPage(Screen):
pass

class SecondPage(Screen):
pass

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

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

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

raw-image

▲說明:main.py程式碼

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


請點擊網址觀看影片:

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

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


本篇小結

了解FallOutTransition的基本語法,來控制screen(頁面)向中心位置淡出,並且透過參數(duration)來改變轉場時間。


本篇結束:

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


留言
avatar-img
艾肯比工程師
3會員
71內容數
主要分享應用程式開發過程、遭遇困難及解決技巧,提供給自學或獨立開發者做為參考,希望能對您們有所幫助。
艾肯比工程師的其他內容
2025/12/31
本篇說明 Kivy 的 ScreenManager 模組其中 SlideTransition 類別。內容涵蓋如何透過 Python 和 Kivy 為應用程式的螢幕切換加入視覺化的左右滑動效果,並示範如何調整滑動方向(上、下、左、右)與轉場持續時間 (duration),讓使用者體驗更為流暢與專業。
Thumbnail
2025/12/31
本篇說明 Kivy 的 ScreenManager 模組其中 SlideTransition 類別。內容涵蓋如何透過 Python 和 Kivy 為應用程式的螢幕切換加入視覺化的左右滑動效果,並示範如何調整滑動方向(上、下、左、右)與轉場持續時間 (duration),讓使用者體驗更為流暢與專業。
Thumbnail
2025/12/24
本文說明如何在 Kivy 中使用 Screen 和 ScreenManager 類別,來操作螢幕(頁面)的設定與切換。涵蓋了 Python 程式碼撰寫,以及如何設定畫面大小、定義頁面內容,並透過按鈕觸發頁面切換,適合 Kivy 入門者學習。
Thumbnail
2025/12/24
本文說明如何在 Kivy 中使用 Screen 和 ScreenManager 類別,來操作螢幕(頁面)的設定與切換。涵蓋了 Python 程式碼撰寫,以及如何設定畫面大小、定義頁面內容,並透過按鈕觸發頁面切換,適合 Kivy 入門者學習。
Thumbnail
2025/12/17
本篇分享如何在 Kivy 應用程式中,針對 Label、Button、TextInput 等物件(widget)替換預設的英文字體,改用您偏好的中文字體。內容涵蓋 Python 程式碼撰寫、Kivy Language(.kv)檔案設定、字體檔案放置與路徑設定,並提供不同物件的實際應用範例。
Thumbnail
2025/12/17
本篇分享如何在 Kivy 應用程式中,針對 Label、Button、TextInput 等物件(widget)替換預設的英文字體,改用您偏好的中文字體。內容涵蓋 Python 程式碼撰寫、Kivy Language(.kv)檔案設定、字體檔案放置與路徑設定,並提供不同物件的實際應用範例。
Thumbnail
看更多
你可能也想看
Thumbnail
在這一章中,我們介紹了 CSS 的過渡效果和動畫效果。過渡效果使 CSS 屬性的變化更加平滑,而動畫效果則允許我們更精細地控制元素的多個屬性隨時間變化的過程。我們通過基本語法和示例展示了如何使用這些效果,並提供了一個綜合應用的實踐案例來幫助理解。這些技術可以讓你的網頁更具互動性和動態效果。
Thumbnail
在這一章中,我們介紹了 CSS 的過渡效果和動畫效果。過渡效果使 CSS 屬性的變化更加平滑,而動畫效果則允許我們更精細地控制元素的多個屬性隨時間變化的過程。我們通過基本語法和示例展示了如何使用這些效果,並提供了一個綜合應用的實踐案例來幫助理解。這些技術可以讓你的網頁更具互動性和動態效果。
Thumbnail
這篇內容,將會講解什麼是「switch」,以及與「switch」相關的知識。包括switch的簡介、switch、break。
Thumbnail
這篇內容,將會講解什麼是「switch」,以及與「switch」相關的知識。包括switch的簡介、switch、break。
Thumbnail
在這篇文章中,我們將探討如何製作章節轉場動畫,讓您的作品更具吸引力。本文包含了準備素材、定義圖片、製作簡易動畫等步驟,適合初學者進行學習和操作。我們提供了必要的資源和範例,讓您能輕鬆上手。期待透過這篇教學,能讓您在創作中達到更高的境界!
Thumbnail
在這篇文章中,我們將探討如何製作章節轉場動畫,讓您的作品更具吸引力。本文包含了準備素材、定義圖片、製作簡易動畫等步驟,適合初學者進行學習和操作。我們提供了必要的資源和範例,讓您能輕鬆上手。期待透過這篇教學,能讓您在創作中達到更高的境界!
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
這篇內容,將簡單介紹Asset Browser、Workspace、Inspector、Code Browser,作為入門的介面導覽。
Thumbnail
這篇內容,將簡單介紹Asset Browser、Workspace、Inspector、Code Browser,作為入門的介面導覽。
Thumbnail
這篇內容,將教你如何開啟新的GameMaker專案,並調整畫面佈局。也會講解,為何建議用英文語系,來進行遊戲開發。
Thumbnail
這篇內容,將教你如何開啟新的GameMaker專案,並調整畫面佈局。也會講解,為何建議用英文語系,來進行遊戲開發。
Thumbnail
Anytype主要分為四區塊:目錄欄(Widget組成)、主編輯畫面、導航選單、設定區。
Thumbnail
Anytype主要分為四區塊:目錄欄(Widget組成)、主編輯畫面、導航選單、設定區。
Thumbnail
Ae 小技巧:Adjustment Layer 調整圖層 動態後記系列會記錄一些我在製作中的記錄,可能是分解動畫、小技巧、發想、腳本......等等。 每篇都是小短篇,就是補充用的小筆記,沒有前後順序,可跳著閱讀。
Thumbnail
Ae 小技巧:Adjustment Layer 調整圖層 動態後記系列會記錄一些我在製作中的記錄,可能是分解動畫、小技巧、發想、腳本......等等。 每篇都是小短篇,就是補充用的小筆記,沒有前後順序,可跳著閱讀。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News