【kivy layout】BoxLayout類別的使用方法|Kivy基礎用法

更新 發佈閱讀 6 分鐘


本篇開始:

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



【本篇說明】在 Kivy裡面有很多用於佈局(版面)的類別,像是常見的 FloatLayout、 BoxLayout、 GridLayout..等,今天要來介紹的是 BoxLayout,在字面上翻譯是"盒子佈局",使用的效果是一格一格地將部件做排列,是比較規矩且有順序的佈局方式。

1.首先在main.py寫下固定的程式碼

以下.py程式碼:(在vscode開啟python檔案,取名為main.py,以下簡稱.py)

from kivy.app import App
from kivy.uix.floatlayout import BoxLayout

class firstlayout(BoxLayout):
pass

class Mainapp(App):
def build(self):
return firstlayout()

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

▲說明:

1.從 kivy.uix.boxlayout這個模組導入 BoxLayout類別

2.創建一個class 類別取名為 firstlayout(可自取無限定命名),然後在()填入 BoxLayout,目的是為了繼承 BoxLayout類別所有特性

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


raw-image

▲說明:main.py程式碼


2.在vscode新增 kivy檔案,我取名 main.kv,並且放在同資料夾內

raw-image

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


3.在.kv加入 layout內容

先使用4個 Button部件來展示(可參考這篇:【kivy Button】經常使用的Button(按鈕)語法。)

以下.kv程式碼:(在vscode編輯 main.kv,簡稱.kv)

<firstlayout>:
spacing: 5
orientation: 'horizontal'

Button:
text:'green light'

Button:
text:'yellow light'

Button:
text:'black light'

Button:
text:'red light'

▲說明:

1.先加入<firstlayout> : (記得要使用角括號 < >),目的使用 main.py裡面的類別 firstlayout,也就是 BoxLayout類別的特性

2.在 <firstlayout>裡面,需先縮排,然後加入 spacingorientation兩種屬性

3.spacing: 部件之間的間隔,數字越大代表間隔越大

4.orientation:代表排列方向,有區分水平(horizontal)及垂直(vertical)方向,這邊填入 'horizontal',要記得加引號''

5.添加Widget部件,使用方式:為縮排後加上Widget部件名稱,再加上冒號:



raw-image

▲說明:main.kv程式碼

raw-image

▲說明:執行python檔案


【說明】因為是使用 BoxLayout類別,排列方向有其固定規則,像是水平是由左至右、垂直是由上至下,以下再展示垂直方向。

以下.kv程式碼:(在vscode編輯 main.kv,簡稱.kv)

<firstlayout>:
spacing: 10
orientation: 'vertical'

Button:
text:'green light'

Button:
text:'yellow light'

Button:
text:'black light'

Button:
text:'red light'
raw-image

▲說明:main.kv程式碼

raw-image

▲說明:執行python檔案


本篇小結

了解BoxLayout類別的基本使用方法後,之後會再分享 GridLayout類別,就會更清楚在版面佈局上的差異。


本篇結束:

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



留言
avatar-img
艾肯比工程師
4會員
77內容數
主要分享應用程式開發過程、遭遇困難及解決技巧,提供給自學或獨立開發者做為參考,希望能對您們有所幫助。
艾肯比工程師的其他內容
2025/09/30
在 Kivy裡面有很多用於佈局(版面)的類別,其中FloatLayout,在字面上翻譯是"浮點的佈局",使用的效果像是可隨意指定子部件排列位置。
Thumbnail
2025/09/30
在 Kivy裡面有很多用於佈局(版面)的類別,其中FloatLayout,在字面上翻譯是"浮點的佈局",使用的效果像是可隨意指定子部件排列位置。
Thumbnail
2025/09/15
學習如何使用Kivy RoundedButton建立圓角按鈕,本文提供詳細步驟、程式碼範例和圖解說明,助你輕鬆掌握Kivy RoundedButton技巧。
Thumbnail
2025/09/15
學習如何使用Kivy RoundedButton建立圓角按鈕,本文提供詳細步驟、程式碼範例和圖解說明,助你輕鬆掌握Kivy RoundedButton技巧。
Thumbnail
2025/09/08
canvas.before,它的語法跟 canvas是相同的,分享兩種使用的時機(方式)。
Thumbnail
2025/09/08
canvas.before,它的語法跟 canvas是相同的,分享兩種使用的時機(方式)。
Thumbnail
看更多
你可能也想看
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
在本章中,我們探討了CSS Grid佈局的基本概念和應用。CSS Grid提供了一個強大而靈活的二維佈局系統,使得處理複雜的網頁佈局變得更加簡單和直觀。我們學習了如何設置Grid容器和Grid項目,以及如何使用各種Grid屬性來定義和管理佈局。
Thumbnail
在本章中,我們探討了CSS Grid佈局的基本概念和應用。CSS Grid提供了一個強大而靈活的二維佈局系統,使得處理複雜的網頁佈局變得更加簡單和直觀。我們學習了如何設置Grid容器和Grid項目,以及如何使用各種Grid屬性來定義和管理佈局。
Thumbnail
CSS 盒模型是理解和設計網頁佈局的核心概念。它包括元素的內容、填充、邊框和外邊距。
Thumbnail
CSS 盒模型是理解和設計網頁佈局的核心概念。它包括元素的內容、填充、邊框和外邊距。
Thumbnail
不論是平面設計、介面設計,都能見排版這一詞。而排版的作用,即在明確的設計目標中,將所有元素做有組織的安排,精確地傳達訊息。
Thumbnail
不論是平面設計、介面設計,都能見排版這一詞。而排版的作用,即在明確的設計目標中,將所有元素做有組織的安排,精確地傳達訊息。
Thumbnail
本篇教學將介紹 renpy 中網格(Grid)的基本造型特性,包括網格的定義、常見造型特性以及使用範例。透過這些內容,讀者可以更瞭解如何在 renpy 中運用網格來製作遊戲畫面。
Thumbnail
本篇教學將介紹 renpy 中網格(Grid)的基本造型特性,包括網格的定義、常見造型特性以及使用範例。透過這些內容,讀者可以更瞭解如何在 renpy 中運用網格來製作遊戲畫面。
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
在這篇教學中,我們會介紹Renpy框框 (Box)的各種造型特性,包括水平框 (hbox)、垂直框 (vbox) 和固定框 (fixed),以及常見特性如spacing、box_reverse和box_wrap。透過這份教學,您將能更瞭解Renpy框框的運作原理和應用,進一步提升Renpy的應用能力
Thumbnail
在這篇教學中,我們會介紹Renpy框框 (Box)的各種造型特性,包括水平框 (hbox)、垂直框 (vbox) 和固定框 (fixed),以及常見特性如spacing、box_reverse和box_wrap。透過這份教學,您將能更瞭解Renpy框框的運作原理和應用,進一步提升Renpy的應用能力
Thumbnail
這個系列的教學會列出基本上所有常見的造型和一些基礎 , 讓各位可以自行搭配造型~在這個第四篇呢 , 我們會來一起了解:常見的窗口 / 框架造型定義他們的意思加了之後有什麼效果那就讓我們開始吧!
Thumbnail
這個系列的教學會列出基本上所有常見的造型和一些基礎 , 讓各位可以自行搭配造型~在這個第四篇呢 , 我們會來一起了解:常見的窗口 / 框架造型定義他們的意思加了之後有什麼效果那就讓我們開始吧!
Thumbnail
建構Anytype之前..... 1.清晰劃分工作區 2.選擇模板套用 3.改變外觀界面
Thumbnail
建構Anytype之前..... 1.清晰劃分工作區 2.選擇模板套用 3.改變外觀界面
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News