python - 如何在 Kivy 中为标签设置动画?
问题描述
好的,我的问题是这样的我如何在 Kivy 中为标签设置动画,如果这个问题太简单了,我很抱歉:)
这是Label
我想要动画的地方。我可以在评论中编辑代码吗?
实际上,我对这个脚本很着迷,绞尽脑汁想知道如何为这个东西制作动画!!请帮忙!..
import kivy
from kivy.app import App
from kivy.uix.label import Label
class MyApp(App):
def build(self):
lu = Label(text = "This is a label! Pls help me with Animation!")
return lu
if __name__ == '__main__':
MyApp().run()
解决方案
如果您想Label
每隔几秒更新一次文本,那么您可以使用 Clock并Clock.schedule_interval(function_name, seconds)
执行function_name(dt)
每个seconds
,在此函数中您应该更改文本Label
显示当前时间的最小示例。
from kivy.app import App
from kivy.uix.label import Label
from kivy.clock import Clock
import datetime
def update_label(dt):
new_text = datetime.datetime.now().strftime('%H:%M:%S')
label.text = new_text
#print(new_text)
label = None # create global variable to access the same `label` in two different functions
class MyApp(App):
def build(self):
global label # inform function to assign `Label` to global variable
label = Label(text="???")
Clock.schedule_interval(update_label, 1)
return label
#Clock.schedule_interval(update_label, 1)
if __name__ == '__main__':
MyApp().run()
编辑:
滚动文本的另一个例子
from kivy.app import App
from kivy.uix.label import Label
from kivy.clock import Clock
import datetime
label = None
text = 'Hello World of Python!'
text_length = len(text)
index = 0
temp_text = text + ' ' + text
def update_label(dt):
global index
label.text = temp_text[index:index+15]
index += 1
if index >= text_length:
index = 0
class MyApp(App):
def build(self):
global label
label = Label(text="???")
Clock.schedule_interval(update_label, 0.20)
return label
if __name__ == '__main__':
MyApp().run()
编辑:
对于数值,您可以使用Animation。
这是闪烁的文字。
它将颜色变为black
(在 0.2 秒内),然后又变回white
(在 0.2 秒内)。它重复它。
from kivy.app import App
from kivy.uix.label import Label
from kivy.animation import Animation
class MyApp(App):
def build(self):
label = Label(text='Hello World of Python!')
anim = Animation(color=(0, 0, 0, 1), duration=.2) + Animation(color=(1, 1, 1, 1), duration=.2)
anim.repeat = True
anim.start(label)
return label
if __name__ == '__main__':
MyApp().run()
推荐阅读
- regex - 为什么这个 vim 正则表达式如此昂贵:s/\n/\\n/g
- symfony - 在我的服务器上加载 config_dev.yml
- react-native - AsyncStorage 下面的代码没有运行
- c# - 为什么 Visual Studio 为程序集重定向创建 app.configs?
- python - 我在哪里把下载的模块放在 USB 上?
- notepad++ - notepad++ 正则表达式模式来查找字符串
- google-cloud-dataflow - 如何集成测试写入 Bigtable 的 Dataflow 管道?
- node.js - 在猫鼬处查找并将对象更新为数组
- aws-lambda - 在 Cloudformation 之前或之后立即运行 Lambda 函数?AWS
- makefile - “ld:找不到 -lblacsF77init 的库”