Вопрос
Я хочу добавить эти текстовые входные данные в качестве меток для этого boxlayout и
флажок также.
Решение
Решение включает в себя улучшения для файла kv и скрипта Python.
файл кв
- Реализация представления для правила класса,
<Row>:
- Передать значения
X1
, X2
, X3
методу add_more()
- Необязательно: добавьте атрибуты к
ScrollView:
Фрагменты - файл kv
<Row>:
x1: ''
x2: ''
x3: False
Label:
text: root.x1
Label:
text: root.x2
CheckBox:
active: root.x3
<MyPopup>:
...
BoxLayout:
orientation:'horizontal'
Button:
text:'Add'
on_release: app.add_more(X1.text, X2.text, X3.active)
...
<SecondScreen>:
...
ScrollView:
bar_width: 10
bar_color: 1, 0, 0, 1 # red
bar_inactive_color: 0, 0, 1, 1 # blue
effect_cls: "ScrollEffect"
scroll_type: ['bars', 'content']
py файл
- Объявите
class Row()
с наследованием BoxLayout
.
- Объявление атрибутов класса для
x1
, x2
и x3
типа StringProperty
и BooleanProperty
- Реализация конструктора для заполнения
x1
, x2
и x3
- Изменить метод
add_more()
, чтобы принять x1
, x2
и x3
Snippets - py file
class Row(BoxLayout):
x1 = StringProperty('')
x2 = StringProperty('')
x3 = BooleanProperty(False)
def __init__(self, x1, x2, x3, **kwargs):
super(Row, self).__init__(**kwargs)
self.x1 = x1
self.x2 = x2
self.x3 = x3
class testiApp(App):
...
def add_more(self, x1, x2, x3):
addbutton = self.root.get_screen('Page2').ids.empty
addbutton.add_widget(Row(x1, x2, x3))
выход