【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
留言分享你的想法!
avatar-img
艾肯比工程師
3會員
64內容數
主要分享應用程式開發過程、遭遇困難及解決技巧,提供給自學或獨立開發者做為參考,希望能對您們有所幫助。
艾肯比工程師的其他內容
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
吸引力法則是互相的,頻率相近的兩方總會尋到彼此。香氛和你也是。
Thumbnail
吸引力法則是互相的,頻率相近的兩方總會尋到彼此。香氛和你也是。
Thumbnail
本文探討臺灣串流平臺的發展現況、競爭格局,並解析其帶來的經濟效應。透過美國電影協會(MPA)的講座內容,結合業界專家意見與生活觀察,文章揭示串流平臺如何影響內容製作, 同時討論臺灣有利的創作環境,包括自由的風氣和開放的政策,對於提升國家軟實力與國際影響力的重要性。
Thumbnail
本文探討臺灣串流平臺的發展現況、競爭格局,並解析其帶來的經濟效應。透過美國電影協會(MPA)的講座內容,結合業界專家意見與生活觀察,文章揭示串流平臺如何影響內容製作, 同時討論臺灣有利的創作環境,包括自由的風氣和開放的政策,對於提升國家軟實力與國際影響力的重要性。
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 佈局計算機按鈕。
Thumbnail
網格(Grid)是一個既普遍又隱形的存在,它以規則的排列方式存在於我們生活的各個角落。無論是在城市建築中的街區規劃,還是在數字化的屏幕上的像素點,網格都在無聲地將空間分割成方形或矩形的區域,為我們的生活和工作提供組織和結構。 除了實際的建築和數位設計,生活中還有各種各樣的網格存在。櫃子就是一個簡單
Thumbnail
網格(Grid)是一個既普遍又隱形的存在,它以規則的排列方式存在於我們生活的各個角落。無論是在城市建築中的街區規劃,還是在數字化的屏幕上的像素點,網格都在無聲地將空間分割成方形或矩形的區域,為我們的生活和工作提供組織和結構。 除了實際的建築和數位設計,生活中還有各種各樣的網格存在。櫃子就是一個簡單
Thumbnail
本課程跟大家介紹常見的 Android 佈局方式:LinearLayout、ConstraintLayout、RelativeLayout、FrameLayout、TableLayout、GridLayout 和 CoordinatorLayout。
Thumbnail
本課程跟大家介紹常見的 Android 佈局方式:LinearLayout、ConstraintLayout、RelativeLayout、FrameLayout、TableLayout、GridLayout 和 CoordinatorLayout。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News