Python3とKivyで簡単なアプリを作っています。
RecycleViewのviewclassに組み込んだCheckBoxを選択する際に別で全選択が可能になるボタンを配置したいです。しかしこの場合、全選択を行う関数をviewclass内に作れないため、viewclass外からCheckBoxのactiveを制御する必要があり、どのようにすればそれが可能になるのかがわかりません。
以下に簡略化したコードを記載します。
py
1from kivy.app import App 2from kivy.uix.boxlayout import BoxLayout 3from kivy.uix.recycleview import RecycleView 4from kivy.properties import ObjectProperty 5 6class TestStart(BoxLayout): 7 checklist=ObjectProperty() 8 def on_kv_post(self, base_widget): 9 for i in range(5): 10 self.checklist.data.append({"name":str(i)}) 11 def allselect(self): 12 pass 13 14class CheckList(BoxLayout): 15 name=ObjectProperty() 16 17class TestCheck(App): 18 def __init__(self, **kwargs): 19 super(TestCheck,self).__init__(**kwargs) 20 21if __name__ == "__main__": 22 TestCheck().run()
kv
1TestStart 2<TestStart> 3 checklist:checklist 4 BoxLayout: 5 canvas.before: 6 Color: 7 rgb:255,255,255 8 Rectangle: 9 size: self.size 10 orientation:"vertical" 11 Button: 12 size_hint_y:.1 13 text:"allselect" 14 on_press: root.allselect() 15 RecycleView: 16 size_hint_y:.9 17 viewclass: "CheckList" 18 id: checklist 19 RecycleBoxLayout: 20 orientation: "vertical" 21 default_size_hint: 1,None 22 default_size: None,dp(30) 23 size_hint_y: None 24 height: self.minimum_height 25 spacing: 5 26 padding: 10 27 28<CheckList> 29 name:"" 30 CheckBox: 31 32 Label: 33 text:root.name 34 color: 0,0,0
0から4までのリストが生成され、それぞれにチェックボックスがついています。allselectボタンを押すことでチェックボックスが全てTrueになるようにしたいです。
ご助力お願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/08 05:22