checkbox部件屬性不多,本練習舉例了單選,複選二種方式,並將各checkbox進行id命名,每個都綁定了相同的動作,具體大家可以看原始碼進行學習。
先在開發工具pycharm裡新建一個專案,然後新建mian.py,原始碼內容如下:
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout class CheckBoxBoxLayout(BoxLayout):
def __init__(self,**kwargs):
super(CheckBoxBoxLayout,self).__init__(**kwargs) #通過ID獲取到checkbox部件並繫結方法
self.ids.first_check_0.bind(active=self.on_checkbox_active)
self.ids.first_check_1.bind(active=self.on_checkbox_active)
self.ids.first_check_2.bind(active=self.on_checkbox_active)
self.ids.first_check_3.bind(active=self.on_checkbox_active) @staticmethod
def on_checkbox_active(checkbox,value):
if value: #這裡意是如果checkbox傳過來的value為True時,列印下面的內容
print('這個選擇框',checkbox,'被選中',value)
else:
print('這個選擇框',checkbox,'沒有選中',value) class CheckBoxApp(App):
def build(self):
return CheckBoxBoxLayout() if __name__ =='__main__':
CheckBoxApp().run()
再建一個KV檔案,checkbox.kv原始碼內容如下:
<CheckBoxBoxLayout>:
canvas:
Color:
rgba:1,1,1,1
Rectangle:
pos:self.pos
size:self.size orientation:'vertical' # 指定佈局方向 GridLayout:
cols: 4
padding : 30,30
spacing: 20, 20
halign:'right'
row_default_height: '30dp' CheckBox:
group:'check_0' # 分組名
id:first_check_0 # 新增ID屬性
color:.9,.2,.1,1 # 設定選擇框體顏色,除canvas設定顏色用Color,其他均為color.
text:'check_0單選項1'
Label:
text: '選項1'
font_size:20
bold:True #字型加粗
color:.5,.2,.5,1 #字型顏色
valign: 'middle' CheckBox:
group:'check_0'
id:first_check_1 # 新增ID屬性
color:.2,.6,.2,1
text:'check_0單選項2'
Label:
text: '選項2'
font_size:20
bold:True #字型加粗
color:.2,.9,.2,1 #字型顏色
valign: 'middle' CheckBox:
group:'check_0'
id:first_check_2 # 新增ID屬性
color:.2,.2,.6,1
text:'check_0單選項3'
Label:
text: '選項3'
font_size:20
bold:True #字型加粗
color:.2,.2,.9,1 #字型顏色
valign: 'middle' CheckBox:
id:first_check_3 # 新增ID屬性
color:.6,.6,.6,1
text:'check選項'
Label:
text: '選項'
font_size:20
bold:True #字型加粗
color:.9,.2,.2,1 #字型顏色
valign: 'middle'
大家也可點此下載實操專案原始碼匯入pycharm進行練習。