Events 如何使Kivy(KVlang)级联微调器集响应我的第一个on_版本?

Events 如何使Kivy(KVlang)级联微调器集响应我的第一个on_版本?,events,event-handling,kivy,Events,Event Handling,Kivy,我的级联微调器在主微调器的第二个版本中实现了我想要的功能 我如何在第一个版本中实现这一点 提前谢谢。这是我的KVlang和Python代码 克瓦朗: # 0009_spinnerCascade.kv <MyLayout@BoxLayout>: orientation: 'vertical' Spinner: id: s1 text: 'colors' values: 'colors number

我的级联微调器在主微调器的第二个版本中实现了我想要的功能

我如何在第一个版本中实现这一点

提前谢谢。这是我的KVlang和Python代码

克瓦朗:

# 0009_spinnerCascade.kv
<MyLayout@BoxLayout>:  
    orientation: 'vertical'    

    Spinner:  
        id: s1    
        text: 'colors'
        values: 'colors numbers days'.split()
        size_hint_y: None
        height: '48dp'
        my_string_property: 'hello from s1'
        on_release: s2.my_key = self.text

    Label:
        text: 'Mid label'

    Spinner:
        id: s2
        text: 'choose one'
        my_dict:  {'colors': 'red green blue'.split(), 'numbers': '1 2 3'.split(), 'days':'mon tue wed'.split() }
        my_key: 'numbers'
        values: self.my_dict[self.my_key] 
        size_hint_y: None
        height: '48dp'           

MyLayout

release
在选择任何选项之前,当微调器打开并显示选项时,会触发该事件。此时
s2.my_key
的值设置为
s1.text
。选择选项后,
release
事件不会触发,并且
s2。my_键保持不变。然后,在第二次单击显示
s1
选项列表后,将触发第二次
release
事件,并将值od
s2。my_key
最终设置为右侧值。用以下方法观察这种行为:

<MyLayout@BoxLayout>:  
    # ...  
    Spinner:  
        id: s1    
        # ...
        on_release: s2.my_key = self.text ; print("spinner opened")

    # ...  

我实施了以下行为:

def callback(instance,value):
    print(instance,value)

class spinnerName(Spinner):
    values = ('1','2','3')

spinInstance = Spinner()
spinInstance.bind(text=callback)

每次单击微调器中的项目时,都会调用print(实例、值)。

您能否提供一个示例,说明如何在不使用.kv文件的情况下在Python中实现这一点?
<MyLayout@BoxLayout>:  
    # ...  

    Spinner:  
        id: s1    
        # ...  
        on_text: s2.my_key = self.text ; print("option selected")

    # ... 
def callback(instance,value):
    print(instance,value)

class spinnerName(Spinner):
    values = ('1','2','3')

spinInstance = Spinner()
spinInstance.bind(text=callback)