Kivy Image с ButtonBehavior: как установить кликабельную область, равную размеру моего изображения? - PullRequest
0 голосов
/ 17 марта 2019

Я только начинающий в Kivy и Python, в моем простом приложении я добавил изображение с ButtonBehavior, как описано в посте Kivy-- Изображение в виде кнопки .

Этоработает, но кликабельная область больше, чем размер моего изображения, хотя мне бы хотелось, чтобы она была точно такой же, как и у png-картинки в источнике (т.е. треугольник

image source

Любая идея, чтобы решить эту проблему?

Я также добавил прямоугольник, чтобы выделить область, на которую можно кликнуть (светло-синий), если я играю с размером на холсте, область, на которую можно кликнуть, не изменится:

Окно моего приложения

from kivy.uix.behaviors import ButtonBehavior
from kivy.uix.image import Image
from kivy.lang import Builder
from kivy.app import App
from kivy.uix.floatlayout import FloatLayout

class RootWidget(FloatLayout):
    pass

class ImageButton(ButtonBehavior, Image):
    def on_press(self):
        print('pressed')

Builder.load_string("""  
<RootWidget>: 
    ImageButton:
        source:'BtnTriangle.png'  
        size_hint: None, None
        canvas.before:
            Color:
                rgba: 0, 40, 30, 0.8
            Rectangle:
                size: self.size
                pos: self.pos
""")


class ButtonLayout(App):
    def build(self):
        return RootWidget()


if __name__ == "__main__":
    ButtonLayout().run()
...