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

更新 發佈閱讀 6 分鐘


本篇開始:

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



【本篇說明】在 Kivy裡面有很多用於佈局(版面)的類別,像是常見的 FloatLayout、 BoxLayout、 GridLayout...等,今天要來介紹的是 GridLayout,中文翻譯是"網格佈局",是以二維行列方式來佈局,使用效果可以達到多欄多行的排列內容。

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

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

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

class firstlayout(GridLayout):
pass

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

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

▲說明:

1.從 kivy.uix.gridlayout這個模組導入 GridLayout類別

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

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內容

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

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

<firstlayout>:
spacing: 10
rows:2
cols:3

Button:
text:'green light'

Button:
text:'yellow light'

Button:
text:'black light'

Button:
text:'red light'

Button:
text:'blue light'

Button:
text:'white light'

▲說明:

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

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

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

4.rows:可填數字,代表列數幾列

5.cols:可填數字,代表行數幾行

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



raw-image

▲說明:main.kv程式碼

raw-image

▲說明:執行python檔案,部件呈現2x3(2列3行)的網格排列


【說明】要改變部件排列方向,可以添加屬性 orientation:'',預設排列方向是'lr-tb'(l代表left、r代表right、t代表top、b代表bottom),也就是說排列的順序由左至右,再由上至下。如果改成orientation:'bt-rl',則排列順序為由下至上,然後再由右至左

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

<firstlayout>:
spacing: 10
orientation:'bt-rl'
rows:3
cols:2

Button:
text:'green light'

Button:
text:'yellow light'

Button:
text:'black light'

Button:
text:'red light'

Button:
text:'blue light'

Button:
text:'white light'

raw-image

▲說明:main.kv程式碼,裡面加入 orientation屬性

raw-image

▲說明:執行python檔案,部件改成3x2(3列2行)的網格排列


4.本篇小結

GridLayout跟 FloatLayoutBoxLayout版面佈局上的差異性,如果還有不清楚的部分可以再回頭去複習一下~


本篇結束:

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



留言
avatar-img
艾肯比工程師
4會員
77內容數
主要分享應用程式開發過程、遭遇困難及解決技巧,提供給自學或獨立開發者做為參考,希望能對您們有所幫助。
艾肯比工程師的其他內容
2025/10/10
在 Kivy裡面有很多用於佈局(版面)的類別,BoxLayout,在字面上翻譯是"盒子佈局",使用的效果是一格一格地將部件做排列,是比較規矩且有順序的佈局方式。
Thumbnail
2025/10/10
在 Kivy裡面有很多用於佈局(版面)的類別,BoxLayout,在字面上翻譯是"盒子佈局",使用的效果是一格一格地將部件做排列,是比較規矩且有順序的佈局方式。
Thumbnail
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
看更多
你可能也想看
Thumbnail
債券投資,不只是高資產族群的遊戲 在傳統的投資觀念中,海外債券(Overseas Bonds)常被貼上「高資產族群專屬」的標籤。過去動輒 1 萬甚至 10 萬美元的最低申購門檻,讓許多想尋求穩定配息的小資族望而卻步。 然而,在股市波動劇烈的環境下,尋求穩定的美元現金流與被動收入成為許多投資人
Thumbnail
債券投資,不只是高資產族群的遊戲 在傳統的投資觀念中,海外債券(Overseas Bonds)常被貼上「高資產族群專屬」的標籤。過去動輒 1 萬甚至 10 萬美元的最低申購門檻,讓許多想尋求穩定配息的小資族望而卻步。 然而,在股市波動劇烈的環境下,尋求穩定的美元現金流與被動收入成為許多投資人
Thumbnail
透過川普的近期債券交易揭露,探討債券作為資產配置中「穩定磐石」的重要性。文章分析降息對債券的潛在影響,以及股神巴菲特的操作策略。並介紹玉山證券「小額債」平臺,如何讓小資族也能低門檻參與海外債券市場,實現「低門檻、低波動、固定收益」的務實投資方式。
Thumbnail
透過川普的近期債券交易揭露,探討債券作為資產配置中「穩定磐石」的重要性。文章分析降息對債券的潛在影響,以及股神巴菲特的操作策略。並介紹玉山證券「小額債」平臺,如何讓小資族也能低門檻參與海外債券市場,實現「低門檻、低波動、固定收益」的務實投資方式。
Thumbnail
解析「債券」如何成為資產配置中的穩定錨,提供低風險高回報的投資選項。 藉由玉山證券的低門檻債券服務,投資者可輕鬆入手,平衡風險並穩定財務。
Thumbnail
解析「債券」如何成為資產配置中的穩定錨,提供低風險高回報的投資選項。 藉由玉山證券的低門檻債券服務,投資者可輕鬆入手,平衡風險並穩定財務。
Thumbnail
相較於波動較大的股票,債券能提供固定現金流,而玉山證券推出的小額債,更以1000 美元的低門檻,讓學生與新手也能參與全球優質企業債投資。玉山E-Trader平台即時報價、條件式篩選與清楚的交易流程等特色,大幅降低投資難度,對於希望分散風險、建立穩定現金流的人來說,玉山小額債是一個值得嘗試的理財起點。
Thumbnail
相較於波動較大的股票,債券能提供固定現金流,而玉山證券推出的小額債,更以1000 美元的低門檻,讓學生與新手也能參與全球優質企業債投資。玉山E-Trader平台即時報價、條件式篩選與清楚的交易流程等特色,大幅降低投資難度,對於希望分散風險、建立穩定現金流的人來說,玉山小額債是一個值得嘗試的理財起點。
Thumbnail
這篇內容,將會講解什麼是陣列,以及與陣列相關的知識。包括陣列的簡介、陣列的資料限制、陣列的維度、一維陣列、二維陣列。
Thumbnail
這篇內容,將會講解什麼是陣列,以及與陣列相關的知識。包括陣列的簡介、陣列的資料限制、陣列的維度、一維陣列、二維陣列。
Thumbnail
在本章中,我們探討了CSS Grid佈局的基本概念和應用。CSS Grid提供了一個強大而靈活的二維佈局系統,使得處理複雜的網頁佈局變得更加簡單和直觀。我們學習了如何設置Grid容器和Grid項目,以及如何使用各種Grid屬性來定義和管理佈局。
Thumbnail
在本章中,我們探討了CSS Grid佈局的基本概念和應用。CSS Grid提供了一個強大而靈活的二維佈局系統,使得處理複雜的網頁佈局變得更加簡單和直觀。我們學習了如何設置Grid容器和Grid項目,以及如何使用各種Grid屬性來定義和管理佈局。
Thumbnail
不論是平面設計、介面設計,都能見排版這一詞。而排版的作用,即在明確的設計目標中,將所有元素做有組織的安排,精確地傳達訊息。
Thumbnail
不論是平面設計、介面設計,都能見排版這一詞。而排版的作用,即在明確的設計目標中,將所有元素做有組織的安排,精確地傳達訊息。
Thumbnail
本篇教學將介紹 renpy 中網格(Grid)的基本造型特性,包括網格的定義、常見造型特性以及使用範例。透過這些內容,讀者可以更瞭解如何在 renpy 中運用網格來製作遊戲畫面。
Thumbnail
本篇教學將介紹 renpy 中網格(Grid)的基本造型特性,包括網格的定義、常見造型特性以及使用範例。透過這些內容,讀者可以更瞭解如何在 renpy 中運用網格來製作遊戲畫面。
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
Anytype主要分為四區塊:目錄欄(Widget組成)、主編輯畫面、導航選單、設定區。
Thumbnail
Anytype主要分為四區塊:目錄欄(Widget組成)、主編輯畫面、導航選單、設定區。
Thumbnail
當我們在撰寫一套系統的時候, 總是會提供一個介面讓使用者來觸發功能模組並回傳使用者所需的請求, 而傳統的安裝包模式總是太侷限, 需要個別主機獨立安裝, 相當繁瑣, 但隨著時代的演進與互聯網的崛起, 大部分的工作都可以藉由網頁端、裝置端來觸發, 而伺服端則是負責接收指令、運算與回傳結果, 雲端
Thumbnail
當我們在撰寫一套系統的時候, 總是會提供一個介面讓使用者來觸發功能模組並回傳使用者所需的請求, 而傳統的安裝包模式總是太侷限, 需要個別主機獨立安裝, 相當繁瑣, 但隨著時代的演進與互聯網的崛起, 大部分的工作都可以藉由網頁端、裝置端來觸發, 而伺服端則是負責接收指令、運算與回傳結果, 雲端
Thumbnail
本課程學習如何如何實作計算機介面,佈局文字元件及按鈕。學習使用 LinearLayout 垂直排列元件,調整背景色。透過 GridLayout 佈局計算機按鈕。
Thumbnail
本課程學習如何如何實作計算機介面,佈局文字元件及按鈕。學習使用 LinearLayout 垂直排列元件,調整背景色。透過 GridLayout 佈局計算機按鈕。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News