Python: agregar doble toque en cualquier widget en kivy

Kivy es una herramienta GUI independiente de la plataforma en Python. Puede ejecutarse en Android, IOS, Linux y Windows, etc. Esta es la única biblioteca GUI de python que puede ejecutarse de forma independiente en un dispositivo Android, incluso podemos usarla también en Raspberry Pi. Es una biblioteca Python de código abierto para el desarrollo rápido de aplicaciones que utilizan interfaces de usuario innovadoras, como aplicaciones multitáctiles. Su motor gráfico está construido sobre OpenGL ES 2 y tiene una canalización de gráficos rápida. Si eres nuevo en kivy puedes aprender de este enlace .

En este artículo, desarrollaremos una ventana GUI usando el marco kivy de python, y agregaremos una imagen en esta ventana (puede seguir el mismo patrón para implementar el evento de doble toque en otros widgets también) y agregaremos un doble- toque evento en esta imagen.

Un enfoque básico para implementar el doble toque en el widget de imagen

  1. Importar widget de imagen del paquete kivy
  2. Importar comportamiento táctil del paquete kivy
  3. Importar aplicación kivy
  4. Importar diseño de caja desde el paquete kivy
  5. Añadir widget
  6. Ampliar la clase
  7. Diseño de retorno
  8. Ejecutar una instancia de la clase.

Código: 

Python3

# importing image widget of kivy framework
from kivy.uix.image import Image
  
# importing Touch behaviour event from kivy framework
from kivymd.uix.behaviors import TouchBehavior
from kivy.app import App
  
# importing boxlayout for our application
from kivy.uix.boxlayout import BoxLayout
  
# attaching touch behaviour with image widget
class ImageWithDoubleTouch(Image, TouchBehavior):
  
    # event for double-tap
    def on_double_tap(self, instance, *args):
        print("wow!! you have double clicked an image named "+self.source)
  
# this will connect MainWindow which we have 
# created in ui.kv with main.py file
class MainWindow(BoxLayout):
    pass
"""
Note:- keep in mind that our .kv file name was ui.kv so our rendering 
class(class which will render our application) name 
should be like uiApp otherwise we will not get the desired output!!
"""
  
# this is the main class which will render 
# the whole application
class uiApp(App):
  
    # method which will render our application
    def build(self):
        return MainWindow()
  
# running the application
uiApp().run()

código kivy:

#ventana que contiene nuestra imagen

<Ventana Principal>:

   Diseño de caja:

       # agregar nuestro widget ImageWithDoubleTouch que hemos creado en el archivo main.py

       Imagen con doble toque:

           # agregando la ruta del archivo de imagen

           fuente: «gfg.png»

Producción:

Publicación traducida automáticamente

Artículo escrito por yashmathur123123 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *