【问题标题】:Kivy Digital Clock IssuesKivy 数字时钟问题
【发布时间】:2018-09-21 13:38:39
【问题描述】:

我正在尝试将数字时钟添加到我的 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 数量会因您按下的按钮而异。

【问题讨论】:

    标签: python timer kivy clock kivy-language


    【解决方案1】:

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

    【讨论】:

    • 黑屏,错误文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/kivy/factory.py”,第131行, 在 getattr raise FactoryException('Unknown class ' % name) kivy.factory.FactoryException: Unknown class
    • 您是否从我提供的链接中下载了digitalclock.py
    • 您还需要在您的主 .py 文件中添加一个 from digitalclock.digitalclock import DigitalClock。我编辑了我的答案以包含它。
    猜你喜欢
    • 1970-01-01
    • 2018-07-28
    • 1970-01-01
    • 2013-09-26
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    • 2014-06-27
    • 2016-10-05
    相关资源
    最近更新 更多