【kivy screenmanager】SlideTransition 的語法|Kivy基礎用法

更新 發佈閱讀 9 分鐘


本篇開始:

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



【本篇說明】在kivy這個第三方函式庫裡面,其中screenmanager模組內有許多類別可以控制轉場效果(Transition),今天分享其中的 SlideTransition,示範如何使screen螢幕切換時產生左右滑動(slide)的視覺效果。

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

Window.size = (290,550)

class FirstPage(Screen):
pass

class SecondPage(Screen):
pass

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

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

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

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

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

7.在Manager類別裡面,創建變數tra,使其為ObjectProperty類,值為SlideTransition(),代表現在screen轉換模式為SlideTransition

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

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



raw-image

▲說明:main.kv程式碼


4.執行 Python檔案

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

▲如影片1:預設為向左滑動、轉換時間1秒


5.可改變滑動方向、轉換時間

以下.py程式碼:

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

Window.size = (290,550)

class FirstPage(Screen):
pass

class SecondPage(Screen):
pass

class Manager(ScreenManager):
# 這邊更改
tra = ObjectProperty(SlideTransition(duration=3, direction='right'))

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

if __name__ == "__main__":
main().run()
raw-image

▲說明:main.py程式碼

【說明】

1.加入duration參數,使其轉換時間為3(s)

2.加入direction參數,使其方向為"向右"滑動,也可改為向上(下)滑動:'up'、'down'


6.以下示範其他滑動效果

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

▲如影片2:向右滑動、轉換時間3秒

▲如影片3:向上滑動、轉換時間5秒

▲如影片4:向下滑動、轉換時間2秒


7.本篇小結

本篇可以讓你了解SlideTransition的基本使用,來控制screen(頁面)滑入或是滑出,並且透過參數來改變滑行方向以及轉換時間。


本篇結束:

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



留言
avatar-img
艾肯比工程師
4會員
77內容數
主要分享應用程式開發過程、遭遇困難及解決技巧,提供給自學或獨立開發者做為參考,希望能對您們有所幫助。
艾肯比工程師的其他內容
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
2025/12/10
本文說明 Kivy 中的 ObjectProperty,學習如何運用它與 Kivy Widget 進行綁定,並透過屬性變更觸發事件,以撰寫更靈活、更易於維護的程式碼。
Thumbnail
2025/12/10
本文說明 Kivy 中的 ObjectProperty,學習如何運用它與 Kivy Widget 進行綁定,並透過屬性變更觸發事件,以撰寫更靈活、更易於維護的程式碼。
Thumbnail
看更多
你可能也想看
Thumbnail
債券投資,不只是高資產族群的遊戲 在傳統的投資觀念中,海外債券(Overseas Bonds)常被貼上「高資產族群專屬」的標籤。過去動輒 1 萬甚至 10 萬美元的最低申購門檻,讓許多想尋求穩定配息的小資族望而卻步。 然而,在股市波動劇烈的環境下,尋求穩定的美元現金流與被動收入成為許多投資人
Thumbnail
債券投資,不只是高資產族群的遊戲 在傳統的投資觀念中,海外債券(Overseas Bonds)常被貼上「高資產族群專屬」的標籤。過去動輒 1 萬甚至 10 萬美元的最低申購門檻,讓許多想尋求穩定配息的小資族望而卻步。 然而,在股市波動劇烈的環境下,尋求穩定的美元現金流與被動收入成為許多投資人
Thumbnail
透過川普的近期債券交易揭露,探討債券作為資產配置中「穩定磐石」的重要性。文章分析降息對債券的潛在影響,以及股神巴菲特的操作策略。並介紹玉山證券「小額債」平臺,如何讓小資族也能低門檻參與海外債券市場,實現「低門檻、低波動、固定收益」的務實投資方式。
Thumbnail
透過川普的近期債券交易揭露,探討債券作為資產配置中「穩定磐石」的重要性。文章分析降息對債券的潛在影響,以及股神巴菲特的操作策略。並介紹玉山證券「小額債」平臺,如何讓小資族也能低門檻參與海外債券市場,實現「低門檻、低波動、固定收益」的務實投資方式。
Thumbnail
解析「債券」如何成為資產配置中的穩定錨,提供低風險高回報的投資選項。 藉由玉山證券的低門檻債券服務,投資者可輕鬆入手,平衡風險並穩定財務。
Thumbnail
解析「債券」如何成為資產配置中的穩定錨,提供低風險高回報的投資選項。 藉由玉山證券的低門檻債券服務,投資者可輕鬆入手,平衡風險並穩定財務。
Thumbnail
相較於波動較大的股票,債券能提供固定現金流,而玉山證券推出的小額債,更以1000 美元的低門檻,讓學生與新手也能參與全球優質企業債投資。玉山E-Trader平台即時報價、條件式篩選與清楚的交易流程等特色,大幅降低投資難度,對於希望分散風險、建立穩定現金流的人來說,玉山小額債是一個值得嘗試的理財起點。
Thumbnail
相較於波動較大的股票,債券能提供固定現金流,而玉山證券推出的小額債,更以1000 美元的低門檻,讓學生與新手也能參與全球優質企業債投資。玉山E-Trader平台即時報價、條件式篩選與清楚的交易流程等特色,大幅降低投資難度,對於希望分散風險、建立穩定現金流的人來說,玉山小額債是一個值得嘗試的理財起點。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
本文利用pyqt5,使用pyttsx3將QLineEdit(單行輸入框)的字串,轉成語音呈現出來。
Thumbnail
本文利用pyqt5,使用pyttsx3將QLineEdit(單行輸入框)的字串,轉成語音呈現出來。
Thumbnail
什麼是Python python是電腦程式語言的一種,如同python官方網站上的介紹 "Python是一種程式語,可讓你更快速地工作並更有效的整合系統"。簡單地說,就是你可用python這個程式語言去告訴電腦你想要作什麼,讓電腦來幫你完成你要作的事情。
Thumbnail
什麼是Python python是電腦程式語言的一種,如同python官方網站上的介紹 "Python是一種程式語,可讓你更快速地工作並更有效的整合系統"。簡單地說,就是你可用python這個程式語言去告訴電腦你想要作什麼,讓電腦來幫你完成你要作的事情。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
Python是一種易學且功能強大的程式語言,具有直譯、動態語法等特性,並擁有豐富的標準庫。它在各領域如Web開發、數據科學和人工智慧等得到廣泛應用,並被許多大公司如Google和Facebook等使用。Python還有強大的框架、豐富的交互機能、和龐大的社區。
Thumbnail
Python是一種易學且功能強大的程式語言,具有直譯、動態語法等特性,並擁有豐富的標準庫。它在各領域如Web開發、數據科學和人工智慧等得到廣泛應用,並被許多大公司如Google和Facebook等使用。Python還有強大的框架、豐富的交互機能、和龐大的社區。
Thumbnail
本篇內容介紹如何使用 Python中的 moviepy library 簡單的剪影片。 先安裝moviepy library , 用pip install moviepy , 可參考官方文件。 要剪的影片和python檔要在同個資料夾中,若不在同個位置要用 os library 更換路徑
Thumbnail
本篇內容介紹如何使用 Python中的 moviepy library 簡單的剪影片。 先安裝moviepy library , 用pip install moviepy , 可參考官方文件。 要剪的影片和python檔要在同個資料夾中,若不在同個位置要用 os library 更換路徑
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News