【发布时间】:2021-08-18 23:38:23
【问题描述】:
双击适用于使用 .kv 文件的第一个代码,但我不知道如何让它适用于不使用 .kv 文件的代码。下面的第二个代码将 MDCards 生成为带有标题、图像和副标题的帖子。我只想双击该图像。我怎样才能做到这一点?
from kivy.lang import Builder
from kivymd.app import MDApp
from kivymd.uix.behaviors import TouchBehavior
from kivymd.uix.button import MDRaisedButton
KV = '''
Screen:
MyButton:
text: "PRESS ME"
pos_hint: {"center_x": .5, "center_y": .5}
'''
class MyButton(MDRaisedButton, TouchBehavior):
def on_double_tap(self, *args):
print("<on_double_tap> event")
class MainApp(MDApp):
def build(self):
return Builder.load_string(KV)
MainApp().run()
如何为 MDCard 中的图像添加双击?
from kivy.core.window import Window
from kivy.uix.scrollview import ScrollView
from kivymd.uix.card import MDCard
from kivymd.uix.gridlayout import MDGridLayout
from kivymd.app import MDApp
from kivymd.uix.behaviors import TouchBehavior
from kivymd.uix.button import MDRaisedButton
from kivymd.uix.label import MDLabel
from KivaMD.kivymd.utils.fitimage import FitImage
Window.size = (440, 760)
class MyButton(MDRaisedButton, TouchBehavior):
def on_double_tap(self, *args):
print("<on_double_tap> event")
class MainApp(MDApp):
def build(self):
blog = MDGridLayout(cols=1, spacing=40, size_hint_y=None, padding=[20,], md_bg_color=[0,0,0.1,.2])
blog.bind(minimum_height=blog.setter('height'))
for i in range(10):
post = MDCard(size_hint=(.9, None), size=(300, 300), radius=10)
container = MDGridLayout(cols=1)
post.add_widget(container)
container.add_widget(MDLabel(text="Title", halign='center'))
#ADD DOUBLE TAP TO THIS IMAGE
container.add_widget(FitImage(source="data/assets/img/placeholder.jpg", size_hint_y=None, height=200))
container.add_widget(MDLabel(text="Subtitle", halign='center'))
blog.add_widget(post)
scroll = ScrollView(size_hint=(1, None), size=(Window.width, Window.height))
scroll.add_widget(blog)
return scroll
MainApp().run()
【问题讨论】:
标签: python python-3.x kivy kivymd