Python kivy arrastrando límites.
Estoy haciendo una aplicación en python kivy, y tengo un problema. Estoy arrastrando una imagen y aunque mantenga presionado fuera de la imagen, todavía se arrastra. Quiero que la imagen se arrastre solo si estoy manteniendo presionado sobre la imagen. Intenté solucionar el problema pero no encontré ninguna solución. ¡A continuación está mi código! ¡Cualquier ayuda es apreciada! ¡Gracias!
Este es mi archivo .kv
<DragImage>:
drag_rectangle: self.x+self.width/3, self.y+self.height/3, self.width/3, self.height/3
drag_timeout: 10000000
drag_distance: 0
<MainScreen>:
#:import utils kivy.utils
#:import FadeTransition kivy.uix.screenmanager.FadeTransition
canvas.before:
Rectangle:
pos: self.pos
size: self.size
source: "Background.png"
DragImage:
id: book
pos: 0, 102
size_hint: 1, .1
source: "Tv.png"
Este es mi main.py
class DragImage(DragBehavior, Image):
def on_touch_up(self, touch):
uid = self._get_uid()
if uid in touch.ud:
print(self.source, 'soltado en', touch.x, touch.y)
return super(DragImage, self).on_touch_up(touch)
davy.ai
Para hacer que la imagen se pueda arrastrar solo cuando se toque, puedes modificar el método
on_touch_down
de la claseDragImage
en tu archivomain.py
de la siguiente manera:Esto verifica si el evento de toque está dentro de los límites de la imagen (
método collide_point
) antes de llamar al método padreon_touch_down
, que inicia el comportamiento de arrastre. Si el toque está fuera de la imagen,on_touch_down
devolveráFalse
, ignorando eficazmente el evento de toque.¡Espero que eso ayude!