Python 为什么Kivy按钮不能传播事件?

Python 为什么Kivy按钮不能传播事件?,python,kivy,Python,Kivy,我在kivy应用程序中有以下代码。我只粘贴与按钮相关的代码,因为这是不起作用的。代码的其余部分是关于在datagrid中显示列表数据,这很好 class PnLScreen(Screen): data = ListProperty(defaultvalue=[]) processing = BooleanProperty(defaultvalue=False) def __init__(self, **kwargs): super().__init__(

我在kivy应用程序中有以下代码。我只粘贴与按钮相关的代码,因为这是不起作用的。代码的其余部分是关于在datagrid中显示列表数据,这很好

class PnLScreen(Screen):
    data = ListProperty(defaultvalue=[])
    processing = BooleanProperty(defaultvalue=False)

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        tryout.get_nse_prices()
        tryout.get_bse_prices()
        tryout.get_isin_to_symbol_map()
        self.box = BoxLayout(orientation='vertical')
        button = Button(size_hint_y=None)
        button.bind(on_press=self.go_home)
        self.box.add_widget(button)

    def go_home(self,instance):
        print("called from %s" % instance.text)
        # will figure out how to go home!
现在,当屏幕变为当前屏幕时,将显示该按钮。但单击按钮时,绑定函数go_home从未被调用。我在它工作的其他屏幕上使用按钮。所以我不知道为什么这不会!事实上,我很恼火不能让这个简单的事情工作


提前感谢

您在
self.box.add_widget(button)
中将按钮添加到boxlayout中,但您没有将boxlayout添加到PnLScreen中。(
self.add\u小部件(self.box)
)。这意味着按钮和boxlayout将永远不会显示。因此,您单击的按钮与您在上述代码中创建的按钮不同。

谢谢。我做到了,就是self.add_小部件(self.box)。显示按钮,但不会生成(或传播)按下事件。不知道如何调试这个。这适用于主屏幕上的按钮(我有两个屏幕)。然后我不知道。如果您发布了一个重新生成问题的可运行示例,我可能能够找到问题的原因。很抱歉,我不想调试您的整个应用程序。我建议用检查员来确定你按了哪个按钮。