Kivy 数字时钟问题

Kivy Digital Clock Issues

我正在尝试将数字时钟添加到我的 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 是我要显示时钟的屏幕的标题,它由单独的生成器 (main.kv) 提供。

如有任何帮助,我们将不胜感激!现在已经在这个时钟上挣扎了几个小时。据我所知,问题 似乎 在 .kv 方面。

奖励:如果您想更进一步,我还想添加一个计时器,在按下 .kv 上的按钮时倒数 x 的数量。 x 数量会根据您按下的按钮而有所不同。

我对原来的kivydigitalclockhere做了一个fork。它应该比原来的更容易使用。您可以将它添加到您的 .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 文件夹中)