Как показать метку в определенное время, используя Timer в python kivy? - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь отобразить некоторую метку, используя kivy framework в указанное время с модулем Timer.Вот что у меня есть и что я хочу включить в свой Python Kivy:

from threading import Timer 
time_var = 2

def time(): 
  print(time_var) 

t = Timer(time_var, time) 
t.start() 

Вот мой Python Kivy код:

from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
from kivy.uix.popup import Popup
from kivy.config import Config
from threading import Timer

Config.set("graphics", "resizable", 0)
Config.set("graphics", "width", 400)
Config.set("graphics", "height", 500)

time_var = 2


class myLayout(BoxLayout):

    def __init__(self, **kwargs):
        super().__init__(**kwargs)

        self.t = Timer(time_var, self.timer)

        layout = BoxLayout(orientation="vertical",
                           padding=20,
                           spacing=10)

        btn = Button(text="Click")
        btn.bind(on_press=self.t.start())

        self.add_widget(layout)
        layout.add_widget(btn)

    def timer(self, obj):

        popup = Popup(content=Label(text="timer"),
                      size_hint=(None, None),
                      size=(300, 200))

        return popup.open()


class ReminderApp(App):
    def build(self):
        return myLayout()


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

Но я не могу понять, как сделатьэто работает.Может быть, есть способ сделать это с помощью модулей KIVY .. Пожалуйста, помогите мне, потому что я застрял ..

1 Ответ

0 голосов
/ 31 мая 2018

Наверное, я понял это ... поправьте меня, если я ошибаюсь

from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
from kivy.uix.popup import Popup
from kivy.config import Config
from threading import Timer

Config.set("graphics", "resizable", 0)
Config.set("graphics", "width", 400)
Config.set("graphics", "height", 500)

time_var = 2


class myLayout(BoxLayout):

    def __init__(self, **kwargs):
        super().__init__(**kwargs)

        layout = BoxLayout(orientation="vertical",
                           padding=20,
                           spacing=10)

        btn = Button(text="Click")

        self.add_widget(layout)
        layout.add_widget(btn)

        btn.bind(on_press=self.timer)

    def popup(self):

        popup = Popup(content=Label(text="timer"),
                      size_hint=(None, None),
                      size=(300, 200))
        popup.open()

    def timer(self, obj):
        timer = Timer(time_var, self.popup)
        timer.start()


class ReminderApp(App):
    def build(self):
        return myLayout()


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