Использование информации о часах в другом классе - PullRequest
0 голосов
/ 25 апреля 2019

Я пытаюсь написать простое приложение с часами.Это работает хорошо, но мне интересно, есть ли способ использовать методы из simple_clock (App) в классе Drawing () и хранить там информацию?

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.graphics import Line
from kivy.core.image import Image
from kivy.uix.button import Button
from kivy.clock import Clock
from kivy.uix.screenmanager import ScreenManager, Screen, FadeTransition
from kivy.uix.gridlayout import GridLayout

class another_screen(Screen):
    pass
class Drawing():
    pass

presentation = Builder.load_file("simple_clock_kivy.kv")

class simple_clock(App):

    sw_started = False
    sw_seconds = 0

    def update_clock(self, nap):
        if self.sw_started:
            self.sw_seconds += nap
        print(self.sw_seconds)

    def start_stop(self):
        self.sw_started = True

    def reset(self):
        if self.sw_seconds:
            self.sw_seconds = 0
        else:
            pass

    def stop_clock(self):
        self.sw_started = False

    def on_start(self):
        Clock.schedule_interval(self.update_clock, 0)

    def build(self):
        return presentation

if __name__=="__main__":
    simple_clock().run()
<another_screen>:
    name: "other"

    FloatLayout:
        Drawing:    
            id: other

        Button:
            id: start_stop
            text: 'Start'
            size_hint: 0.2, 0.05
            pos_hint: {"x": 0, "bottom": 1}
            on_press: app.start_stop()


        Button:
            id: reset
            text: 'Reset'
            size_hint: 0.2, 0.05
            pos_hint: {"x": 0.6, "bottom": 1}
            on_press: app.reset()

        Button:
            id: stop
            text: 'Stop'
            size_hint: 0.2, 0.05
            pos_hint: {"x": 0.8, "bottom": 1}
            on_press: app.stop_clock()

Кто-то нажимает «Старт»кнопка, время начинает тикать и рисование разрешено;Кнопка «Стоп», время останавливается.И я хотел бы сохранить продолжительность рисования в переменной.

1 Ответ

0 голосов
/ 25 апреля 2019

Доступ к атрибутам / методам, определенным в классе App ()

В любом классе за пределами class App()

  • Используйте App.get_running_app(), чтобы получить объект, app
  • Методы вызова, например App.get_running_app().update_clock()
  • Атрибуты доступа, например App.get_running_app().sw_seconds
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...