Kivy utilise souvent des variables telles que l'application et la racine.
Par exemple, utilisez-le comme ci-dessous.
main.kv
<LargeImage>:
on_touch_down: app.changeScene() #Appeler changeeScene de MainApp lorsque le widget est touché
Image:
allow_stretch: True
source: root.path
main.py
class LargeImage(Widget):
def __init__(self, path):
self.path = path
super(LargeImage, self).__init__()
class MainApp(App):
def build(self):
self.root = LargeImage()
return self.root
def changeScene(self, scene, opt = None):
pass
Par exemple, si vous avez le fichier ci-dessous La racine de l'image supérieure est LargeImage et la racine de l'image inférieure est SmallImage.
main.kv
<LargeImage>:
Image:
source: root.path
<SmallImage>:
Image:
source: root.path
Supposons maintenant que vous exécutiez le code ci-dessous du côté du fichier python.
main.py
l_img = LargetImage()
l_img.add_widget(SmallImage()) #Ajouter SmallImage à LargeImage
Dans ce cas, la racine de l'image latérale SmallImage reste SmallImage. L'ajout sous LargeImage ne change pas la racine en LargeImage.
Si vous souhaitez accéder à LargeImage du côté SmallImage, Utilisez root.parent au lieu de root.
Inversement, lors de l'accès à la petite image du côté de la grande image Il est accessible avec root.children [0].
Recommended Posts