【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
留言分享你的想法!
avatar-img
艾肯比工程師
3會員
61內容數
主要分享應用程式開發過程、遭遇困難及解決技巧,提供給自學或獨立開發者做為參考,希望能對您們有所幫助。
艾肯比工程師的其他內容
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
如果包含以前嘗試的,我肯定試超過20種以上「新奇口味」的餅乾,但現在的「新奇口味」像雨後春筍般,多到我疲乏了。所以這次雙11,我要怎麼買呢?
Thumbnail
如果包含以前嘗試的,我肯定試超過20種以上「新奇口味」的餅乾,但現在的「新奇口味」像雨後春筍般,多到我疲乏了。所以這次雙11,我要怎麼買呢?
Thumbnail
最近開始轉涼了,各位鳥奴們是否會開始擔心小鳥會著涼呢?不用擔心,今天這篇直接帶你看需要的商品,而且今天除了照片之外,我們也直接帶連結✨讓你的雙11購物不盲目,讓你想買直接加入購物車,除了長知識也可以直接下單避寒神器🫱🏼文章結尾也會告訴大家在花錢的同時也能省錢、賺錢的小撇步,請記得留到最後!!
Thumbnail
最近開始轉涼了,各位鳥奴們是否會開始擔心小鳥會著涼呢?不用擔心,今天這篇直接帶你看需要的商品,而且今天除了照片之外,我們也直接帶連結✨讓你的雙11購物不盲目,讓你想買直接加入購物車,除了長知識也可以直接下單避寒神器🫱🏼文章結尾也會告訴大家在花錢的同時也能省錢、賺錢的小撇步,請記得留到最後!!
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.改變外觀界面
Thumbnail
Anytype主要分為四區塊:目錄欄(Widget組成)、主編輯畫面、導航選單、設定區。
Thumbnail
Anytype主要分為四區塊:目錄欄(Widget組成)、主編輯畫面、導航選單、設定區。
Thumbnail
當我們在撰寫一套系統的時候, 總是會提供一個介面讓使用者來觸發功能模組並回傳使用者所需的請求, 而傳統的安裝包模式總是太侷限, 需要個別主機獨立安裝, 相當繁瑣, 但隨著時代的演進與互聯網的崛起, 大部分的工作都可以藉由網頁端、裝置端來觸發, 而伺服端則是負責接收指令、運算與回傳結果, 雲端
Thumbnail
當我們在撰寫一套系統的時候, 總是會提供一個介面讓使用者來觸發功能模組並回傳使用者所需的請求, 而傳統的安裝包模式總是太侷限, 需要個別主機獨立安裝, 相當繁瑣, 但隨著時代的演進與互聯網的崛起, 大部分的工作都可以藉由網頁端、裝置端來觸發, 而伺服端則是負責接收指令、運算與回傳結果, 雲端
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News