我想给按钮添加一个复选框
i want to add a checkbox to buttons
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.checkbox import CheckBox
class Ckbox(BoxLayout):
orientation = "vertical"
cc =[]
def __init__(self):
super().__init__()
for i in range(5):
self.bb = Button()
self.cq = CheckBox()
self.cc.append(self.cq)
self.add_widget(self.bb)
self.add_widget(self.cq)
class Ckboxapp(App):
def build(self):
return Ckbox()
Ckboxapp().run()
从上面的代码,我得到这个
但我希望复选框和按钮在一起,所以我将按钮变量添加到添加小部件中作为 self.bb.add_widget(self.cq) 并得到了这个
第二张图片显示了附加到按钮的复选框,但只显示在最后一个按钮上。我希望它像第二个 iamge 一样,但我希望它出现在所有按钮上。我能做什么?
如果你把每个 CheckBox
/Button
对放在另一个 BoxLayout
中,我想你会得到你想要的。试试这个:
class Ckbox(BoxLayout):
orientation = "vertical"
def __init__(self):
super().__init__()
for i in range(5):
bl = BoxLayout()
bb = Button(text='Button ' + str(i), size_hint_x=0.85)
cq = CheckBox(size_hint_x=0.15)
bl.add_widget(cq)
bl.add_widget(bb)
self.add_widget(bl)
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.checkbox import CheckBox
class Ckbox(BoxLayout):
orientation = "vertical"
cc =[]
def __init__(self):
super().__init__()
for i in range(5):
self.bb = Button()
self.cq = CheckBox()
self.cc.append(self.cq)
self.add_widget(self.bb)
self.add_widget(self.cq)
class Ckboxapp(App):
def build(self):
return Ckbox()
Ckboxapp().run()
从上面的代码,我得到这个
但我希望复选框和按钮在一起,所以我将按钮变量添加到添加小部件中作为 self.bb.add_widget(self.cq) 并得到了这个
第二张图片显示了附加到按钮的复选框,但只显示在最后一个按钮上。我希望它像第二个 iamge 一样,但我希望它出现在所有按钮上。我能做什么?
如果你把每个 CheckBox
/Button
对放在另一个 BoxLayout
中,我想你会得到你想要的。试试这个:
class Ckbox(BoxLayout):
orientation = "vertical"
def __init__(self):
super().__init__()
for i in range(5):
bl = BoxLayout()
bb = Button(text='Button ' + str(i), size_hint_x=0.85)
cq = CheckBox(size_hint_x=0.15)
bl.add_widget(cq)
bl.add_widget(bb)
self.add_widget(bl)