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

更新 發佈閱讀 9 分鐘



本篇開始:

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



【本篇說明】在Kivy這個第三方函式庫(框架)裡面,其中screenmanager模組內建許多類別可以控制轉場效果(Transition),今天分享其中的 WipeTransition ,它的視覺效果:當切換螢幕時,目前的畫面像是用「掃過(擦拭)」的方式來移除,然後顯現出新畫面。

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, WipeTransition
from kivy.properties import ObjectProperty

Window.size = (290,550)

class FirstPage(Screen):
pass

class SecondPage(Screen):
pass

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

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

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

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

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

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

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


vocus|新世代的創作平台

▲說明:main.py程式碼


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

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

vocus|新世代的創作平台

▲說明:我的是放在以下路徑:桌面-> 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 以及SecondPage

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



vocus|新世代的創作平台

▲說明:main.kv程式碼


4.執行 Python檔案



請點擊網址觀看影片:

https://drive.google.com/drive/folders/18HAaltbVgWGkMCI_eYrDtnS0kaduINcg?usp=sharing

▲如影片1:舊畫面像是用擦拭方式消失、(預設)轉換時間不到1秒,看不太出來效果


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

以下.py程式碼:

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

Window.size = (290,550)

class FirstPage(Screen):
pass

class SecondPage(Screen):
pass

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

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

if __name__ == "__main__":
main().run()
vocus|新世代的創作平台

▲說明:main.py程式碼

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

請點擊網址觀看影片:

https://drive.google.com/drive/folders/18HAaltbVgWGkMCI_eYrDtnS0kaduINcg?usp=sharing

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


6.本篇小結

了解WipeTransition的基本語法,以"擦拭"方式轉換screen(畫面),並加入參數(duration)來改變轉場時間。


本篇結束:

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


留言
avatar-img
艾肯比工程師
4會員
77內容數
主要分享應用程式開發過程、遭遇困難及解決技巧,提供給自學或獨立開發者做為參考,希望能對您們有所幫助。
艾肯比工程師的其他內容
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
2025/12/24
本文說明如何在 Kivy 中使用 Screen 和 ScreenManager 類別,來操作螢幕(頁面)的設定與切換。涵蓋了 Python 程式碼撰寫,以及如何設定畫面大小、定義頁面內容,並透過按鈕觸發頁面切換,適合 Kivy 入門者學習。
Thumbnail
2025/12/24
本文說明如何在 Kivy 中使用 Screen 和 ScreenManager 類別,來操作螢幕(頁面)的設定與切換。涵蓋了 Python 程式碼撰寫,以及如何設定畫面大小、定義頁面內容,並透過按鈕觸發頁面切換,適合 Kivy 入門者學習。
Thumbnail
看更多
你可能也想看
Thumbnail
在做自動化工具或測試腳本時,常常會需要操作視窗,例如: 👉 找到特定程式 👉 切換視窗 👉 自動化點擊操作 這時候,pyautogui 是一個很好上手的工具。
Thumbnail
在做自動化工具或測試腳本時,常常會需要操作視窗,例如: 👉 找到特定程式 👉 切換視窗 👉 自動化點擊操作 這時候,pyautogui 是一個很好上手的工具。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
從 JavaScript 到 Python
Thumbnail
從 JavaScript 到 Python
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
isalnum() : 檢測字串是否由字母和數字組成 isalpha() : 檢測字串是否只由字母組成 isalnum() str1 = "abc123" print(str1.isalnum()) str2 = "pop.cat" print(str2.isalnum()) str3
Thumbnail
isalnum() : 檢測字串是否由字母和數字組成 isalpha() : 檢測字串是否只由字母組成 isalnum() str1 = "abc123" print(str1.isalnum()) str2 = "pop.cat" print(str2.isalnum()) str3
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
在 Python 自動化領域中,pyautogui 是非常常用的工具,可以幫你模擬滑鼠與鍵盤操作。 這篇帶你快速掌握: ✔ 滑鼠移動 ✔ 點擊操作 ✔ 拖曳 ✔ 滾動
Thumbnail
在 Python 自動化領域中,pyautogui 是非常常用的工具,可以幫你模擬滑鼠與鍵盤操作。 這篇帶你快速掌握: ✔ 滑鼠移動 ✔ 點擊操作 ✔ 拖曳 ✔ 滾動
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News