У меня есть проблема, которую я не могу решить самостоятельно:
Что у меня есть в файле Python:
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
class Dossier(BoxLayout):
def __init__(self, nom_, **kwargs):
super(Dossier, self).__init__(**kwargs)
self.orientation = 'vertical'
self.spacing = 2
self.size_hint_y = None
self.height = self.minimum_height
self.nom = nom_
self.ids.TB.text = nom_
def clic(self):
temp = Dossier(str(self.nom) + "\\sous-dossier")
self.ids.SD.add_widget(temp)
class testApp(BoxLayout):
def __init__(self, nom_, **kwargs):
super(testApp, self).__init__(**kwargs)
self.orientation = 'vertical'
self.spacing = 2
self.size_hint_y = None
self.height = self.minimum_height
self.nom = nom_
self.add_widget(Dossier(nom_))
class TestApp(App):
def build(self):
return testApp('test')
if __name__ == "__main__":
TestApp().run()
Что у меня есть в файле kv:
<Dossier>:
ToggleButton:
id: TB
size_hint_y : None
height: 25
halign : 'left'
valign : 'center'
on_press: root.clic()
BoxLayout:
id: SD
orientation : 'vertical'
spacing : 2
size_hint_y : None
height: self.minimum_height
Когда я нажимаю на ToggleButton "TB", вот что я получаю:
До:
После того, как:
Объект «Досье», который я добавляю, содержит только ToggleButton с высотой 25 и пустой (на момент создания) BoxLayout. С интервалом 2 высота экземпляра «Досье» (который наследуется от BoxLayout) равна 27.
Но когда я добавляю его в пустой BoxLayout моего «корневого» «Досье», BoxLayout не меняет свой размер, и дочерний объект рисуется поверх родительского.
Извините, если мне не ясно, я не являюсь носителем английского языка.