kivy - переместить виджет изображения на передний план на языке .kv - PullRequest
0 голосов
/ 15 февраля 2020

У меня есть следующая часть в моем файле .kv:

        AnchorLayout:
            size_hint: 1, 0.8
            id:anchorpoint
            Image:
                id: mustard
                size_hint: None, None
                source: 'images/basic_mustard.png'
                size: self.texture.size
        AnchorLayout:
            size_hint: 1, 0.2
            Image:
                id:bread
                size_hint: 1,1
                source: 'images/plain_bread.png'

Есть два изображения, и позиция первого изображения регулируется каждый раз, когда происходит событие касания, чтобы оно следовало за этим касанием. Если изображение теперь перемещается в области второго изображения, оно исчезает за ним. Я хотел бы, чтобы это было перед вторым изображением. Теперь я знаю, что это можно сделать, загрузив изображение в виде текстуры прямоугольника в группу canvas.after, например:

canvas.after:
        Rectangle:
            pos: root.my_pos
            source: "images/basic_mustard.png"

Это, однако, невыгодно, поскольку мне пришлось бы переписать тонну кода. , В документах kivy я обнаружил, что вы можете указать, к какой группе холста добавляется виджет, используя аргумент canvas в методе add_widget, например: add_widget(my_widget, canvas="after") - по крайней мере в коде python. Поэтому я попытался сделать это в файле kv, добавив инструкцию canvas: "after" в свой Anchor Layout (и Image Widget) - без эффекта (но также без ошибок). Это был просто выстрел в темноте, так как я не нашел в документации ничего о том, как это сделать на языке kv. Есть ли способ определить, в какой группе холстов отображается виджет, внутри языка .kv? Буду признателен за помощь. Надеюсь, вопрос не слишком глуп - я все еще новичок в kivy.

...