如何访问 Kivy 中的父小部件元素?
How to access parent widget elements in Kivy?
我正在开发 Kivy 应用程序。我的应用程序设计如下图所示:
我有两个独立的模块,MainLayout 和 Table。 MainLayout 中有一个名为 'lblA' 的标签,Table 中有一个名为 'btnA' 的按钮。现在我想在 btnA 的点击中更改 lblA 的文本。但是我无法在 Table 中创建 MainLayout 的对象,因为 MainLayout 已经有 Table 的对象。这个问题有什么解决办法吗?我在这个问题上花了一个星期,但没有找到解决办法。任何帮助将不胜感激。谢谢
解决方法在评论区,我也贴出来了。
我们可以使用模块的 parent 属性 来解决这个问题。
在我的例子中,要在 btnA 上更改 lblA 的文本点击,这是 btnA 的简单代码 点击处理程序。
self.parent.ids.lblA.text = "I am changed from btnA(which is in Table module)"
这里,self.parent 指向 MainLayout,在那个布局里面我们有一个 id 为 [=18= 的标签]lblA.
For more help: proceed to this link: http://inclem.net/2019/06/20/kivy/widget_interactions_between_python_and_kv/
我正在开发 Kivy 应用程序。我的应用程序设计如下图所示:
我有两个独立的模块,MainLayout 和 Table。 MainLayout 中有一个名为 'lblA' 的标签,Table 中有一个名为 'btnA' 的按钮。现在我想在 btnA 的点击中更改 lblA 的文本。但是我无法在 Table 中创建 MainLayout 的对象,因为 MainLayout 已经有 Table 的对象。这个问题有什么解决办法吗?我在这个问题上花了一个星期,但没有找到解决办法。任何帮助将不胜感激。谢谢
解决方法在评论区,我也贴出来了。 我们可以使用模块的 parent 属性 来解决这个问题。
在我的例子中,要在 btnA 上更改 lblA 的文本点击,这是 btnA 的简单代码 点击处理程序。
self.parent.ids.lblA.text = "I am changed from btnA(which is in Table module)"
这里,self.parent 指向 MainLayout,在那个布局里面我们有一个 id 为 [=18= 的标签]lblA.
For more help: proceed to this link: http://inclem.net/2019/06/20/kivy/widget_interactions_between_python_and_kv/