Kivy数字时钟问题

时间:2018-09-21 13:38:39

标签: python timer kivy clock kivy-language

我正在尝试向我的Kivy程序中添加数字时钟,这似乎有麻烦。

这是.py:

import kivy

kivy.require('1.10.0')

from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen, FadeTransition
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.image import Image
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.stacklayout import StackLayout
from kivy.clock import Clock
from kivy.properties import ObjectProperty
from kivy.properties import StringProperty

import time


class IntroScreen(Screen):
    pass


class ContScreen(Screen):
    pass


class ScreenManagement(ScreenManager):
    pass


backbone = Builder.load_file("main.kv")


class Status(FloatLayout):
    _change = StringProperty()
    _tnd = ObjectProperty(None)

    def update(self, *args):
        self.time = time.asctime()
        self._change = str(self.time)
        self._tnd.text = str(self.time)
        print (self._change)


class XGApp(App):
    time = StringProperty()

    def update(self, *args):
        self.time = str(time.asctime())  # + 'time'?

    def build (self):
        Clock.schedule_interval(self.update, 1)
        return backbone


xApp = XGApp()

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

和.kv

<ContScreen>:
    FloatLayout
        size_hint: .1,.1
        canvas.before:
            Color:
                rgba: 0,0,0,1
            Rectangle:
                pos: self.pos
                size: self.size
        Label:
            text: app.time

ContScreen是我想显示时钟的屏幕的标题,它由一个单独的Builder(main.kv)提供。

任何帮助将不胜感激!这个时钟已经挣扎了几个小时。据我所知,麻烦 似乎在.kv方面。

奖金:如果您想加倍努力,我还想添加一个计时器,按下.kv上的一个按钮,即可将x的数量倒计时。 x的数量会有所不同,具体取决于您按下哪个按钮。

1 个答案:

答案 0 :(得分:0)

我制作了原始kivydigitalclock here的叉子。它应该比原始版本更易于使用。您可以像其他任何小部件一样将其添加到.kv文件中。例如,类似:

<ContScreen>:
    FloatLayout
        size_hint: .1,.1
        canvas.before:
            Color:
                rgba: 0,0,0,1
            Rectangle:
                pos: self.pos
                size: self.size
        Label:
            text: app.time
    DigitalClock:
        pos_hint: {'right': 1.0, 'center_y': 0.5}
        size_hint: (0.2, 0.2)

应该工作。请注意,在主.py文件中,您需要包括:

from digitalclock.digitalclock import DigitalClock

(假设digitalclock.py文件位于digitalclock文件夹中)