是否可以从kv文件中的另一个类调用函数?

时间:2019-08-07 23:56:27

标签: python kivy

我有一个使用类创建的弹出窗口。在此弹出窗口中,我有2个按钮。根据您按下的按钮,它必须调用主类中的一个函数。

如果使用同一类中的“ on_release:”调用kv文件中的函数,则编写“ root ....()”。如果我想从另一个类中调用一个函数,应该怎么写?

谢谢

1 个答案:

答案 0 :(得分:1)

在您的kv中,您可以引用appselfroot。参见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的新实例,而不使用任何当前现有的实例。