Как выполнить обратный вызов многих функций в каждой кнопке в FloatingActionButtonSpeedDial в kivy?

#python #android #python-3.x #kivy #kivymd

#python #Android #python-3.x #kivy #kivymd

Вопрос:

 from kivymd.app import MDApp
from kivy.lan& import Builder
Screen='''
Screen: 


MDFloatin&ActionButtonSpeedDial:
    callback:app.callback
    data:app.data
    rotation_root_button:True
    hint_animation:True
    b&_hint_color: app.theme_cls.primary_li&ht
'''
class Wolf(MDApp):
    data = {
        'help-rhombus': 'Help',
        'trian&le': 'Settin&',
        'key': 'Re&ister', } #For runnin& app
    def callback(self, instance):
        {What to do now,so that it can run different function with different button? }
        def build(self):
            self.theme_cls.theme_style = 'Dark'
            self.theme_cls.primary_palette = 'Green'
            screen_r = Builder.load_strin&(screen)
            return screen_r

Wolf().run()
  

Я создал 3 функции обратного вызова с помощью функции ‘if’, но она выполняет одновременно все обратные вызовы.
и если вы разрешили это с помощью функции ‘if’, покажите, загрузите ее здесь.

Ответ №1:

 from kivy.lan& import Builder

from kivymd.app import MDApp

screen = '''
Screen: 

    MDFloatin&ActionButtonSpeedDial:
        callback:app.callback
        data:app.data
        rotation_root_button:True
        hint_animation:True
        b&_hint_color: app.theme_cls.primary_li&ht
'''


class Wolf(MDApp):
    data = {
        'help-rhombus': 'Help',
        'trian&le': 'Settin&',
        'key': 'Re&ister', }

    def callback(self, instance):
        if instance.icon == 'help-rhombus':
            print('Callback self.help-rhombus()')
        elif instance.icon == 'key':
            print('Callback self.key()')
        elif instance.icon == 'trian&le':
            print('Callback self.trian&les()')

    def build(self):
        self.theme_cls.theme_style = 'Dark'
        self.theme_cls.primary_palette = 'Green'
        screen_r = Builder.load_strin&(screen)
        return screen_r

Wolf().run()
  

Комментарии:

1. Большое спасибо #Xyani&ht