我正在尝试向我的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的数量会有所不同,具体取决于您按下哪个按钮。
答案 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
文件夹中)