【kivy RoundedButton】Button也可以改變形狀,使用 RoundedButton|Kivy基礎用法

更新 發佈閱讀 8 分鐘



本篇開始:

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



【本篇說明】今天要來介紹的是 RoundedButton,基本使用語法跟 Button是差不多的,還不知道的話,可以先參考這篇:【kivy Button】經常使用的Button(按鈕)語法。RoundedButton顧名思義,就是一個「圓角按鈕」


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

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

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

class firstlayout(FloatLayout):
pass

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

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

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

vocus|新世代的創作平台

▲說明:main.py程式碼


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

vocus|新世代的創作平台

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


這邊先加入 Button基本內容

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

Button:
text:'green light'
font_size: 20
bold: True
color: 'green'
size_hint: .2, .2
pos: 220, 50
background_normal: ''
background_color: 'lightgreen'
Button:
text:'yellow light'
font_size: 20
bold: True
color: 'yellow'
size_hint: .2, .2
pos: 400, 50
background_normal: ''
background_color: 'lightyellow'
Button:
text:'red light'
font_size: 20
bold: True
color: 'red'
size_hint: .2, .2
pos: 620, 50
background_normal: ''
background_color: 'pink'

▲說明:先使用3個 Button來展示

vocus|新世代的創作平台

▲說明:main.kv程式碼

vocus|新世代的創作平台

▲說明:執行python檔案,3個 Button預設形狀是矩形的


加入 RoundedButton基本內容

在 Button部件下面加入以下程式碼,且要注意要與<firstlayout>類別同階層,這樣才不會無效宣告

以下.kv程式碼:

<RoundedButton@Button>
background_normal: ''
background_color: (0,0,0,0)
canvas.before:
RoundedRectangle:
size: self.size
pos: self.pos
radius: [38]

▲說明:

1.宣告類別<RoundedButton@Button>

2.background_normal這兩段除了改變背景顏色外,最重要的是讓下面邊角產生改變,請務必加入這兩段,否則無效

vocus|新世代的創作平台

3.這邊使用canvas.before部件,如果不太清楚可以先看這篇:【kivy canvas】canvas.before 基本使用時機

4.RoundedRectangle:來製造有圓角的矩形

5.size、pos:等於部件本身的大小、位置

6.radius:用半徑為38像素(pixel)將邊角改成圓角,半徑越高會越趨近於橢圓形或圓形

7.【補充】我只將第三個 Button改成 RoundedButton來比較看看


vocus|新世代的創作平台

▲說明:main.kv程式碼

vocus|新世代的創作平台

▲說明:執行python檔案,發現沒什麼改變

仔細看會發現 RoundedButton部件裡面已經使用 background_normal: '',因此會影響<RoundedButton@Button> 裡面背景顏色的效果

改成以下.kv程式碼:(只需要把background_normal那兩段刪掉即可)

RoundedButton:
text:'red light'
font_size: 20
bold: True
color: 'red'
size_hint: .2, .2
pos: 620, 50
vocus|新世代的創作平台

執行python檔案

vocus|新世代的創作平台

▲說明:邊角形狀改變了,變成圓角了

【最後補充】

1.使用 RoundedButton雖然可以改成帶有圓角的矩形,但預設 Button部件按下去會有反色的效果就被 canvas.before覆蓋掉了

2.canvas.before如果改成 canvas的話,會發現 RoundedButton的文字會被覆蓋

3.如果這時想要改變 RoundedButton的背景顏色,可在 canvas.before裡面加入 Color屬性

4.radius:半徑越高會越趨近於橢圓形或圓形


以下.kv程式碼:(針對上面3.4項做展示)

<RoundedButton@Button>
background_normal: ''
background_color: (0,0,0,0)
canvas.before:
Color:
rgb:(.1,.1,.9)
RoundedRectangle:
size: self.size
pos: self.pos
radius: [150]
vocus|新世代的創作平台

▲說明:main.kv程式碼

vocus|新世代的創作平台


本篇小結

使用 RoundedButton,讓原先 Button變得更不一樣。

本篇結束:

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


留言
avatar-img
艾肯比工程師
4會員
77內容數
主要分享應用程式開發過程、遭遇困難及解決技巧,提供給自學或獨立開發者做為參考,希望能對您們有所幫助。
艾肯比工程師的其他內容
2025/09/08
canvas.before,它的語法跟 canvas是相同的,分享兩種使用的時機(方式)。
Thumbnail
2025/09/08
canvas.before,它的語法跟 canvas是相同的,分享兩種使用的時機(方式)。
Thumbnail
2025/09/02
canvas,中文翻譯為"帆布",或可稱呼"帆布背景",是很常用的部件之一,本篇分享改變顏色、大小和位置等語法,並附上完整的程式碼範例與圖解說明。
Thumbnail
2025/09/02
canvas,中文翻譯為"帆布",或可稱呼"帆布背景",是很常用的部件之一,本篇分享改變顏色、大小和位置等語法,並附上完整的程式碼範例與圖解說明。
Thumbnail
2025/08/25
kivy language(kv),主要用來分離 Python程式碼及使用者介面(UI)的佈局,本篇分享2種使用kivy language的方式。
Thumbnail
2025/08/25
kivy language(kv),主要用來分離 Python程式碼及使用者介面(UI)的佈局,本篇分享2種使用kivy language的方式。
Thumbnail
看更多
你可能也想看
Thumbnail
Anytype主要分為四區塊:目錄欄(Widget組成)、主編輯畫面、導航選單、設定區。
Thumbnail
Anytype主要分為四區塊:目錄欄(Widget組成)、主編輯畫面、導航選單、設定區。
Thumbnail
今天來分享一個好像有點廢的小技巧 把網頁變成可以直接用來打字的文字編輯器
Thumbnail
今天來分享一個好像有點廢的小技巧 把網頁變成可以直接用來打字的文字編輯器
Thumbnail
這篇教學教您如何在 Ren'py 中製作章節選擇畫面,提供素材下載以及變量設定的範例,並附加結合變量來控制章節解鎖的說明。
Thumbnail
這篇教學教您如何在 Ren'py 中製作章節選擇畫面,提供素材下載以及變量設定的範例,並附加結合變量來控制章節解鎖的說明。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
本篇教學將教你如何建立和使用 textbutton,讓你可以使用文字快速建立玩家可以點擊的按鈕,並提供瞭如何更改按鈕文字和自訂點擊按鈕後的動作。
Thumbnail
本篇教學將教你如何建立和使用 textbutton,讓你可以使用文字快速建立玩家可以點擊的按鈕,並提供瞭如何更改按鈕文字和自訂點擊按鈕後的動作。
Thumbnail
這是關於在 Renpy 中如何自訂 Frame 的教學,包括了建立畫面、在畫面裡面加入 frame、加入造型、加入內容、修正畫面、使用自訂 Frame 等內容。
Thumbnail
這是關於在 Renpy 中如何自訂 Frame 的教學,包括了建立畫面、在畫面裡面加入 frame、加入造型、加入內容、修正畫面、使用自訂 Frame 等內容。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
本篇教學會詳細介紹條 (Bar) 的基本特性,以及在 UI 畫面上的應用,如拖曳、調整大小、空格限制等。此外,教學也針對不同的造型特性進行解說,包括橫向或縱向條、拖曳圖示 (thumb) 調整,以及無法滑動時的隱藏或顯示設定。
Thumbnail
本篇教學會詳細介紹條 (Bar) 的基本特性,以及在 UI 畫面上的應用,如拖曳、調整大小、空格限制等。此外,教學也針對不同的造型特性進行解說,包括橫向或縱向條、拖曳圖示 (thumb) 調整,以及無法滑動時的隱藏或顯示設定。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本課程學習如何修改按鈕外觀的方法,透過調整背景屬性和形狀。我們新增了四種背景顏色,修改每個按鈕的外觀。完成後,呈現不同按鈕風格。
Thumbnail
本課程學習如何修改按鈕外觀的方法,透過調整背景屬性和形狀。我們新增了四種背景顏色,修改每個按鈕的外觀。完成後,呈現不同按鈕風格。
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News