AttributeError: у объекта «MainWindow» нет атрибута «btn», ошибка при запуске всплывающей функции в главном окне (kivy) - PullRequest
0 голосов
/ 23 октября 2019

Я пытаюсь использовать всплывающую функцию в ScreenManager и в MainWindow, и я получил AttributeError: у объекта MainWindow нет атрибута «btn» error. Может ли кто-нибудь помочь мне :( Я знаю, что если я удалю менеджер экрана и, я могу запустить его, но мне нужны эти окна на будущее. Или есть какие-то другие способы сделать это?

windows.py file

from kivy.app import App
from kivy.lang.builder import Builder
from kivy.uix.button import Button
from kivy.uix.screenmanager import ScreenManager, Screen
import kivy
from kivy.uix.widget import Widget
from kivy.properties import ObjectProperty
from kivy.uix.label import Label
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.popup import Popup

class Widgets(Widget):
    def btn(self):
        show_popup()

class P(FloatLayout):
    pass


class MyApp(App):
    def build(self):
        return Widgets()


def show_popup():
    show = P()

    popupWindow = Popup(title="Popup Window", content=show, size_hint=(None,None),size=(400,400))

    popupWindow.open()

class MainWindow(Screen):
    pass

class WindowManager(ScreenManager):
    pass

kys = Builder.load_file("windows.kv")

class MyMainApp(App):
    def build(self):
        return kys


if __name__ == "__main__":
    MyMainApp().run()

файл windows.kv

WindowManager:
    MainWindow:

<MainWindow>:
    Button:
        text: "Shutdown"
        on_release: root.btn()
        size: 75, 50
        size_hint: None, None
        pos_hint: {'left': 1, 'bottom': 1}

<Widgets>:
    Button:
        text: "Shutdown"
        on_release: root.btn()
        size: 75, 50
        size_hint: None, None
        pos_hint: {'left': 1, 'bottom': 1}

<P>:
    Label:
        text: "Are you sure you want to shutdown?"
        size_hint: 0.6, 0.2
        pos_hint: {"x":0.2, "top":1}

    Button:
        text: "Yes"
        size_hint: 0.8, 0.2
        pos_hint: {"x":0.1, "y":0.1}
...