Как получить доступ к дочернему элементу виджета в Kivy? - PullRequest
0 голосов
/ 04 октября 2018

Я новичок, использующий Kivy.Я определил объект FloatLayout с дочерним элементом Button.Есть ли способ получить доступ к событию Button on_press и фоновым изображениям?

Вот код, который я пробовал:

<Tecla2@FloatLayout>:
    Button:
        size_hint: (0.95,1.05)
        pos_hint: {"center_x": 0.5, "center_y": 0.5}
        text: ""

Tecla2:
    self.Button.background_normal: "images/tecla_normal1.png"
    self.Button.background_down: "images/tecla_down1.png"
    self.Button.on_press: if(len(texto.text)<text_len): texto.text+="1"

Альтернативное решение (которое я в настоящее время реализовал) - определение Button ииспользуя новый FloatLayout для каждого экземпляра, но ему не хватает элегантности:

<Tecla@Button>:
    size_hint: (0.95,1.05)
    pos_hint: {"center_x": 0.5, "center_y": 0.5}
    text: ""

FloatLayout:                    
    Tecla:
        background_normal: "images/tecla_normal2.png"
        background_down: "images/tecla_down2.png"
        on_press: if(len(texto.text)<text_len): texto.text+="2"

Есть ли способ сделать это с использованием языка киви?Это самый простой пример, но мне уже нужно было делать то же самое в других ситуациях.

1 Ответ

0 голосов
/ 04 октября 2018

Есть ли в любом случае доступ к событию Button on_press и фоновым изображениям?

Что ж, вы можете использовать соответствующие свойства создаваемой кнопки:

<Tecla2@FloatLayout>:
    Button:
        size_hint: (0.95,1.05)
        pos_hint: {"center_x": 0.5, "center_y": 0.5}
        text: ""
        background_normal: "images/tecla_normal1.png"
        background_down: "images/tecla_down1.png"
        on_press: if(len(texto.text)<text_len): texto.text+="1"

Может быть, вы ищете что-то еще?

...