автоматические события в kivy & python

Я пытаюсь понять, как поставить часы на приложение kivy, но у меня возникли трудности.

Я могу заставить его работать с помощью кнопки.. (т. если я нажму на кнопку, он обновит время часов на этикетке), но я не могу заставить его работать автоматически обновляя каждую секунду.

Любая помощь очень ценится!

Строка события закомментирована, я могу сделать работу с простым файлом с командой печати, но не в контексте изменения текста метки. Он просто говорит » отсутствует 1 аргумент»

from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
import time
from kivy.clock import Clock


class test(BoxLayout):
    def showClock(self,dt):
         timey = (time.strftime("%H"+":"+"%M"+":"+"%S")),dt
         self.ids.labelID.text = (timey[0])
    event = Clock.schedule_interval(showClock, 1)




class question(App):
    def build(self):       
        return test()

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

KV файл:

<test>:
    id:test
    BoxLayout:
        Label:
            id: labelID
            text:"label"
        Button:
            id: buttonID
            text:"button"
            on_release:test.showClock(1)

РЕДАКТИРОВАТЬ:

Ошибка считывает:

File "C:Python34libsite-packageskivyclock.py", line 406, in tick
ret = callback(self._dt)
TypeError: showClock() missing 1 required positional argument: 'dt'

EDIT2:

После многих экспериментов и просмотра кода других людей в интернете, мне удалось заставить его работать.. хотя я не уверен, почему и как.. любое объяснение было бы очень полезно, чтобы помочь моему пониманию…

Работающий код:

from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
import time
from kivy.clock import Clock


class test(BoxLayout):
    def __init__(self, **kwargs):
        super(test, self).__init__(**kwargs)
        Clock.schedule_interval(self.showClock, 1)

    def showClock(self, dt):
         timey = (time.strftime("%H"+":"+"%M"+":"+"%S")),dt
         self.ids.labelID.text = (timey[0])



class question(App):
    def build(self):       
        return test()

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

1 ответ