我正在kivy中构建gui。应用程序的一部分需要打开一个包含按钮的弹出框,按钮的回调函数调用该弹出框中的函数。我在使回拨正常工作时遇到了一些问题。
作为家长,我最好通过以下课程:
class A():
def foo(self):
print(foo)
class B(A):
def foo(self):
super(B, self).foo()
myB = B()
myB.foo()
但是我需要将kivy定义作为对象定义的一部分传入(请参见下面的代码)。
欢迎任何建议,如果您需要更多详细信息,请告诉我!
我的代码:
class Application(App):
pass
class A(TabbedPanel):
def __init__(self,**kwargs):
super().__init__(**kwargs)
self.B = B()
class B(BoxLayout):
def __init__(self,**kwargs):
super().__init__(**kwargs)
self.C = C()
def test_function(self):
print("Test Function Worked!")
class C(Popup):
def __init__(self,**kwargs):
super().__init__(**kwargs)
def on_button_release(self):
super(C, self).test_function()
if name == "__main__"
Application().run()
我的想法是 on_button_release
在c类中,将运行 test_function
b班
1条答案
按热度按时间jv4diomz1#
如果您只引用类b的属性,那么可以使用
@classmethod
在函数上方。然后,您将能够通过类名调用该函数。如。B.test_function()
.除此之外,你可以包括
class B
进入Application
类作为属性或在启动时的bultin方法中初始化。