【kivy screen】Screen 和 ScreenManager的語法|Kivy基礎用法

更新 發佈閱讀 6 分鐘



本篇開始:

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



【本篇說明】在kivy這個第三方函式庫裡面,其中screen模組可以來操作螢幕(頁面)設定及切換,以下分享如何使用 Screen 以及 ScreenManager這兩個類別。

先在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

Window.size = (290,550)

class FirstPage(Screen):
pass

class SecondPage(Screen):
pass

class Manager(ScreenManager):
pass

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

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

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

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

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



vocus|新世代的創作平台

▲說明:main.py程式碼


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

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

vocus|新世代的創作平台

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

▲說明:

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

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

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

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

5.記得最後在<Manager>裡面加入FirstPage: 以及SecondPage:


vocus|新世代的創作平台

▲說明:main.kv程式碼


執行 Python檔案

vocus|新世代的創作平台

▲說明:這是firstpage的畫面,按下Button後會進入secondpage

vocus|新世代的創作平台

▲說明:這是secondpage的畫面,若再按下Button後會再切換到firstpage


本篇小結

透過Screen 以及 ScreenManager的基本使用,可以讓screen(畫面、頁面)轉換更多元。


本篇結束:

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


留言
avatar-img
艾肯比工程師
4會員
77內容數
主要分享應用程式開發過程、遭遇困難及解決技巧,提供給自學或獨立開發者做為參考,希望能對您們有所幫助。
艾肯比工程師的其他內容
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
2025/12/03
本文將介紹 Kivy 中 StringProperty(字串屬性)的用法,透過實際範例說明如何宣告、調用及觸發事件,提升程式碼的可維護性和互動性。
Thumbnail
2025/12/03
本文將介紹 Kivy 中 StringProperty(字串屬性)的用法,透過實際範例說明如何宣告、調用及觸發事件,提升程式碼的可維護性和互動性。
Thumbnail
看更多
你可能也想看
Thumbnail
本文利用pyqt5,使用pyttsx3將QLineEdit(單行輸入框)的字串,轉成語音呈現出來。
Thumbnail
本文利用pyqt5,使用pyttsx3將QLineEdit(單行輸入框)的字串,轉成語音呈現出來。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
本篇內容介紹如何使用 Python中的 moviepy library 簡單的剪影片。 先安裝moviepy library , 用pip install moviepy , 可參考官方文件。 要剪的影片和python檔要在同個資料夾中,若不在同個位置要用 os library 更換路徑
Thumbnail
本篇內容介紹如何使用 Python中的 moviepy library 簡單的剪影片。 先安裝moviepy library , 用pip install moviepy , 可參考官方文件。 要剪的影片和python檔要在同個資料夾中,若不在同個位置要用 os library 更換路徑
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
INI 檔案是一種配置檔案格式,常用於保存設定資料和組態資訊。 它使用簡單的鍵值對結構來組織資料,通常用於程式、應用程式或操作系統中的配置和初始化設定。 INI 檔案每個鍵值對包含一個名稱(鍵)和對應的值。 基本的檔案格式如下: [Section1] Key1 = Value1 Key2 =
Thumbnail
INI 檔案是一種配置檔案格式,常用於保存設定資料和組態資訊。 它使用簡單的鍵值對結構來組織資料,通常用於程式、應用程式或操作系統中的配置和初始化設定。 INI 檔案每個鍵值對包含一個名稱(鍵)和對應的值。 基本的檔案格式如下: [Section1] Key1 = Value1 Key2 =
Thumbnail
Python是一種易學且功能強大的程式語言,具有直譯、動態語法等特性,並擁有豐富的標準庫。它在各領域如Web開發、數據科學和人工智慧等得到廣泛應用,並被許多大公司如Google和Facebook等使用。Python還有強大的框架、豐富的交互機能、和龐大的社區。
Thumbnail
Python是一種易學且功能強大的程式語言,具有直譯、動態語法等特性,並擁有豐富的標準庫。它在各領域如Web開發、數據科學和人工智慧等得到廣泛應用,並被許多大公司如Google和Facebook等使用。Python還有強大的框架、豐富的交互機能、和龐大的社區。
Thumbnail
本文將說明如何去辨識出圖片文字​位置及高寬。
Thumbnail
本文將說明如何去辨識出圖片文字​位置及高寬。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News