Невозможно вызвать функцию из файла .kv, класс и метод утверждений интерпретатора не существуют - PullRequest
0 голосов
/ 19 февраля 2020

Когда я запускаю файл, появляются кнопки. Все выглядит хорошо, пока я не нажму кнопку 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)

1 Ответ

0 голосов
/ 19 февраля 2020

Есть много проблем с вашим кодом, но один из способов сделать то, что вы просите, это

  • Создать экземпляр вашего Main класса в вашем App классе: self.main = Main()
  • Вызовите этот экземпляр из вашего kv кода: on_press: app.main.c()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...