Kivy Digital Clock Проблемы - PullRequest
       30

Kivy Digital Clock Проблемы

0 голосов
/ 21 сентября 2018

Я пытаюсь добавить цифровые часы в свою программу 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, что я могу сказать.

БОНУС: Если вы хотите пройти лишнюю милю, я также хочу добавить таймер, который отсчитывает хсумма по нажатию кнопки на .кв.Количество х будет отличаться в зависимости от того, какую кнопку вы нажимаете.

1 Ответ

0 голосов
/ 21 сентября 2018

Я сделал оригинальную вилку kivydigitalclock здесь .Это должно быть проще в использовании, чем оригинал.Вы можете добавить его в свой файл .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)

...