【问题标题】:How to trigger a function when KivyMD Speed Dial Button pressed?按下 KivyMD 快速拨号按钮时如何触发功能?
【发布时间】:2021-07-31 10:02:08
【问题描述】:

我正在尝试在按下 KivyMD 快速拨号上的按钮时触发功能。 我目前正在使用来自 .kv 代码的回调,如下所示:

MDFloatingActionButtonSpeedDial:
        bg_hint_color: app.theme_cls.primary_light
        data: app.data
        root_button_anim: True
        callback: app.btn

然后调用python代码:

#DATA FOR THE SPEED DIAL
data = {
        'Create': 'file-document',
        'Open': 'folder-open'
        
    }
#FUNCTION HERE
    def btn(self, button):
        print(button)
        if button =="<kivymd.uix.button.MDFloatingBottomButton object at 0x000001BBCAF5BA50>":
            print("test")

我输入参数button 以获取按钮的名称,因此我将其放入if 语句中,以查看到目前为止是否一切正常,但没有打印文本。该按钮正在打印,这就是为什么我把它放在 if 语句中 put text 没有被打印所以我真的不知道这里发生了什么。 希望社区可以提供帮助。

【问题讨论】:

    标签: python python-3.x kivy kivy-language kivymd


    【解决方案1】:

    isinstance 检查对象属于哪个类。

    from kivy.lang import Builder
    
    from kivymd.app import MDApp
    from kivymd.uix.button import MDFloatingBottomButton
    
    KV = '''
    MDScreen:
    
        MDFloatingActionButtonSpeedDial:
            data: app.data
            root_button_anim: True
            callback: app.callback
    '''
    
    
    class Example(MDApp):
        data = {
            'Create': 'file-document',
            'Open': 'folder-open',
        }
    
        def build(self):
            return Builder.load_string(KV)
    
        def callback(self, instance):
            print('callback')
            icon = instance.icon
            # if you want check button, use
            if isinstance(instance, MDFloatingBottomButton):
                if icon == 'file-document':
                    print('Read file')
                elif icon == 'folder-open':
                    print('Open folder')
    
    
    Example().run()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多