无法从.kv文件调用函数,解释器声明类和方法不存在

2024-06-07 12:32:46 发布

您现在位置:Python中文网/ 问答频道 /正文

当我运行文件时,按钮会显示出来。一切看起来都很好,直到我单击按钮1调用方法Main.c()。解释器抛出一个异常,声称我还没有定义它,而我已经定义了。我在任何地方都找不到解决办法

.py文件:

import kivy
from kivy.app import App
from kivy.uix.button import Button
from kivy.core.window import Window
from kivy.lang.builder import Builder


kivy.require("1.11.1")


class Main:
    @staticmethod
    def c():
        print("c")


class Start(App):

    def setup(self):
        Builder.load_file('start.kv')


Start().run()

.kv文件:

BoxLayout:
    Button:
        id: btn1
        text: "Button 1"
        on_press: Main.c()
    Button:
        text: "Button 2"
        on_press: print(8 * 8)

Tags: 文件fromimportapp定义maindefbuilder
1条回答
网友
1楼 · 发布于 2024-06-07 12:32:46

您的代码有很多问题,但是,实现您要求的功能的一种方法是

  • App类中创建Main类的实例:self.main = Main()
  • kv代码中调用此实例:on_press: app.main.c()

相关问题 更多 >

    热门问题