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 数量会根据您按下的按钮而有所不同。
我对原来的kivydigitalclock
here做了一个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
文件夹中)
我正在尝试将数字时钟添加到我的 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 数量会根据您按下的按钮而有所不同。
我对原来的kivydigitalclock
here做了一个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
文件夹中)