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

更新 發佈閱讀 8 分鐘


本篇開始:

  • 我的開發環境是win11
  • Python是3.10.7版本
  • 編碼的工具是Visual Studio Code(VS Code)



【本篇說明】在Kivy這個第三方函式庫(框架)裡面,其中screenmanager模組內建許多類別可以控制轉場效果(transition),今天分享這個系列最後一個類別 ShaderTransition ,它的視覺效果:兩個畫面轉場動畫為一片空白。

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

在vscode開啟Python檔案,取名為main.py,以下簡稱.py

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

Window.size = (290,550)

class FirstPage(Screen):
pass

class SecondPage(Screen):
pass

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

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

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

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

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

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

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: 'back 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檔案



請點擊網址觀看影片1:

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

▲如影片1:轉場效果為一片空白,預設時間不到1秒


5.可改變轉換時間

以下.py程式碼:

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

Window.size = (290,550)

class FirstPage(Screen):
pass

class SecondPage(Screen):
pass

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

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

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

vocus|新世代的創作平台

▲加入duration參數的main程式碼

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

請點擊網址觀看影片2:

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

▲如影片2:加入duration 參數,空白效果為3(s)


6.本篇小結

使用ShaderTransition的基本語法,了解其效果為一片空白轉場,可以跟NoTransition的轉場效果相比較。


本篇結束:

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

留言
avatar-img
艾肯比工程師
4會員
77內容數
主要分享應用程式開發過程、遭遇困難及解決技巧,提供給自學或獨立開發者做為參考,希望能對您們有所幫助。
艾肯比工程師的其他內容
2026/02/25
本文將說明如何在 Kivy 框架中使用 ScreenManager 的 NoTransition 來實現應用程式中畫面之間的立即切換。內容涵蓋 Python 、kivy程式碼撰寫,以及如何調整轉場動畫的持續時間。適合欲在 Kivy 應用中實現流暢且無任何視覺過場效果的開發者。
Thumbnail
2026/02/25
本文將說明如何在 Kivy 框架中使用 ScreenManager 的 NoTransition 來實現應用程式中畫面之間的立即切換。內容涵蓋 Python 、kivy程式碼撰寫,以及如何調整轉場動畫的持續時間。適合欲在 Kivy 應用中實現流暢且無任何視覺過場效果的開發者。
Thumbnail
2026/02/13
本篇將說明如何在 Kivy 框架中使用 ScreenManager 的 SwapTransition 類別,實現類似 3D 空間的畫面切換效果。內容包含 Python 程式碼及 Kivy Language (kv) 檔案的設定,並運用duration 參數調整轉場動畫的時間,讓畫面能更靈活地呈現。
Thumbnail
2026/02/13
本篇將說明如何在 Kivy 框架中使用 ScreenManager 的 SwapTransition 類別,實現類似 3D 空間的畫面切換效果。內容包含 Python 程式碼及 Kivy Language (kv) 檔案的設定,並運用duration 參數調整轉場動畫的時間,讓畫面能更靈活地呈現。
Thumbnail
2026/02/04
本篇將說明 Kivy 的 ScreenManager 模組中 CardTransition 的使用方法, 創建類似 Android 的切換方式:卡片堆疊(push)和抽出(pop)效果,並透過 duration、direction 和 mode 參數,靈活控制轉場時間、方向及模式。
Thumbnail
2026/02/04
本篇將說明 Kivy 的 ScreenManager 模組中 CardTransition 的使用方法, 創建類似 Android 的切換方式:卡片堆疊(push)和抽出(pop)效果,並透過 duration、direction 和 mode 參數,靈活控制轉場時間、方向及模式。
Thumbnail
看更多
你可能也想看
Thumbnail
身為活動企劃專家,您是否曾在擁擠的展場中思考:「如何在眾多攤位中脫穎而出?」答案其實很簡單──客製化贈品正是您打造差異化競爭優勢的最佳利器。 展場現實:注意力爭奪戰 在現今的展覽環境中,參觀者平均只花15-30秒停留在每個攤位。這短暫的黃金時間內,您需要的不只是吸引目光,更要讓品牌印象深深烙印
Thumbnail
身為活動企劃專家,您是否曾在擁擠的展場中思考:「如何在眾多攤位中脫穎而出?」答案其實很簡單──客製化贈品正是您打造差異化競爭優勢的最佳利器。 展場現實:注意力爭奪戰 在現今的展覽環境中,參觀者平均只花15-30秒停留在每個攤位。這短暫的黃金時間內,您需要的不只是吸引目光,更要讓品牌印象深深烙印
Thumbnail
記錄一下可愛又有巧思的轉場​,欣賞節目組在作品中的用心~*更新(找到答案啦XD)視覺設計威哥說這是移軸縮時攝影~
Thumbnail
記錄一下可愛又有巧思的轉場​,欣賞節目組在作品中的用心~*更新(找到答案啦XD)視覺設計威哥說這是移軸縮時攝影~
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
我們先拋開做簡報,到時該不該用動畫,以及何時用動畫這個問題! 如果我們決定要做動畫,怎樣才能做出衝出天際線的神級動畫效果呢?
Thumbnail
我們先拋開做簡報,到時該不該用動畫,以及何時用動畫這個問題! 如果我們決定要做動畫,怎樣才能做出衝出天際線的神級動畫效果呢?
Thumbnail
禁食不僅是節制食物的古老儀式,它還具備一套修復機制,能幫助我們身體進行深層次的清理與再生。禁食能透過自噬和代謝轉換來清除損壞細胞、提升免疫力,同時有助延緩老化進程。我們還可以選擇禁食模擬飲食,達到類似於禁食的效果但減少飢餓感。此外,禁食已被嵌入許多文化中,提供心靈和身體的雙重益處。
Thumbnail
禁食不僅是節制食物的古老儀式,它還具備一套修復機制,能幫助我們身體進行深層次的清理與再生。禁食能透過自噬和代謝轉換來清除損壞細胞、提升免疫力,同時有助延緩老化進程。我們還可以選擇禁食模擬飲食,達到類似於禁食的效果但減少飢餓感。此外,禁食已被嵌入許多文化中,提供心靈和身體的雙重益處。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
過去我都是簡單地將照片逐張上傳,因為只是自己看,就省略了美編的步驟。但前陣子用 Notion 做對外專案時,覺得需要展示照片來增添活潑度,於是在網路上搜尋相關方法。
Thumbnail
過去我都是簡單地將照片逐張上傳,因為只是自己看,就省略了美編的步驟。但前陣子用 Notion 做對外專案時,覺得需要展示照片來增添活潑度,於是在網路上搜尋相關方法。
Thumbnail
而今年在 Office 365 對於 PowerPoint 最大最受人矚目的更新,莫過於是在「轉場」的功能中新增了「轉化 Morph」的功能!據說可以媲美 Mac 裡 keynote 「神奇移動」的功能,到底真的有沒有這麼「神奇」?它又可以做到哪些事情?
Thumbnail
而今年在 Office 365 對於 PowerPoint 最大最受人矚目的更新,莫過於是在「轉場」的功能中新增了「轉化 Morph」的功能!據說可以媲美 Mac 裡 keynote 「神奇移動」的功能,到底真的有沒有這麼「神奇」?它又可以做到哪些事情?
Thumbnail
長時間工作不一定等於高成效。《工時減半,效果乘十!》鼓勵你放下「努力至上」的直線邏輯,以「10×思維」重新設計工作與時間的關係。這是一本結合策略、實踐與真實人生經驗的實用指南,幫助你創造成果、保留自由。
Thumbnail
長時間工作不一定等於高成效。《工時減半,效果乘十!》鼓勵你放下「努力至上」的直線邏輯,以「10×思維」重新設計工作與時間的關係。這是一本結合策略、實踐與真實人生經驗的實用指南,幫助你創造成果、保留自由。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News