我有一个使用类创建的弹出窗口。在此弹出窗口中,我有2个按钮。根据您按下的按钮,它必须调用主类中的一个函数。
如果使用同一类中的“ on_release:”调用kv文件中的函数,则编写“ root ....()”。如果我想从另一个类中调用一个函数,应该怎么写?
谢谢
答案 0 :(得分:1)
在您的kv
中,您可以引用app
,self
或root
。参见documentation。因此,如果在任何一个引用中都引用了OtherClass
,则可以在kv
中使用该引用。例如,如果在您的App
类中包含一行:
self.otherClassRef = OtherClass()
然后在您的kv
中使用
on_release: app.otherClassRef.someMethod()
无论如何,您必须引用OtherClass
的实例才能访问实例方法。
您可以使用来访问静态方法
on_release: OtherClass.someStaticMethod()
或使用的实例方法
on_release: OtherClass().someMethod()
,但是您可能需要将OtherClass
导入kv
中。像
#:import OtherClass OtherClassFileName.OtherClass
请注意,如果您执行OtherClass().someMethod()
,则将创建OtherClass
的新实例,而不使用任何当前现有的实例。