📜  Python - 在 kivy 中的任何小部件上添加双击

📅  最后修改于: 2022-05-13 01:54:49.359000             🧑  作者: Mango

Python - 在 kivy 中的任何小部件上添加双击

Kivy 是Python独立于平台的 GUI 工具。它可以运行在 Android、IOS、Linux 和 Windows 等系统上。这是Python唯一可以独立运行在 android 设备上的 GUI 库,即使我们也可以在 Raspberry Pi 上使用它。它是一个开源Python库,用于快速开发利用创新用户界面的应用程序,例如多点触控应用程序。它的图形引擎建立在 OpenGL ES 2 之上,并具有快速的图形管道。如果你是 kivy 的新手,你可以从这个链接中学习。

在本文中,我们将使用Python 的kivy 框架开发一个 GUI 窗口,我们将在此窗口上添加一个图像(您也可以按照相同的模式在其他小部件上实现双击事件),我们将添加一个双击点击此图像上的事件。

在图像小部件上实现双击的基本方法

  1. 从 kivy 包导入图像小部件
  2. 从 kivy 包中导入 touchbehaviour
  3. 导入kivy应用
  4. 从 kivy 包中导入 boxlayout
  5. 添加小部件
  6. 扩展类
  7. 返回布局
  8. 运行类的实例

代码:

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()


基维代码:

输出: