如何将图像和时钟添加到 kv 文件

Posted

技术标签:

【中文标题】如何将图像和时钟添加到 kv 文件【英文标题】:How to add an image and clock to a kv file 【发布时间】:2016-11-15 10:07:06 【问题描述】:

我正在尝试将ComicCreator GUI 示例的模板实现为我自己项目的模板。 code 很容易理解,但我想将 toolbox.kv 更改为如下所示:

问:我怎样才能附加一个徽标,而不是当前那里的按钮,并且还永久显示当前日期时间显示 (DD/MM/YYYY HH:MM)。最后添加一个字符串NYC, New York, USA,如图所示。

【问题讨论】:

【参考方案1】:

如果您的图片来自网络,则可以使用 BoxLayout 和 Image 或 AsyncImage。

所以python代码可能是这样的。

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import StringProperty
from kivy.clock import Clock
import time


class MyLayout(BoxLayout):
    your_time = StringProperty()
    def __init__(self,**kwargs):
        super(MyLayout,self).__init__(**kwargs)
        self.orientation = "vertical"
        self.padding = 10
        Clock.schedule_interval(self.set_time, 0.1)    

    def set_time(self,dt):
        self.your_time = time.strftime("%m/%d/%Y %H:%M")

class MyApp(App):
    def build(self):
        return MyLayout()


if __name__ == "__main__":
    MyApp().run()

而kv文件看起来是这样的。

#:kivy 1.9.1

<MyLayout>:
    BoxLayout:
        spacing: 10
        padding: 10,10,10,0
        orientation: "horizontal"
        BoxLayout:
            orientation: "vertical"
            size_hint: 0.3,1
            canvas:
                Rectangle:
                    pos: self.pos
                    size: self.size
            AsyncImage
                source: 'http://lmsotfy.com/so.png'
            Label:
                size_hint: 1,0.3
                text: root.your_time
                color: [0,0,0,1]
            Label:
                size_hint: 1,0.3
                text: "NYC, New York, USA"
                color: [0,0,0,1]

        Button:
            text: ""

    BoxLayout:
        padding: 10,10,10,0
        spacing: 10
        size_hint: 1,0.3
        orientation: "horizontal"
        Button:
            text: "Clear"
        Button:
            text: "Remove"
        Button:
            text: "Group"
        Button:
            text: "Color"
        Button:
            text: "Gestures"

    BoxLayout:
        padding: 10,10,10,10
        size_hint: 1,0.3
        Button:
            text: "Total figures: 1          Kivy Started"

这将如下所示:

【讨论】:

谢谢你,我的问题是如何打印当前时间而不仅仅是“DD/MM/YYYY HH:MM”, @3kstc 好的,你从哪里得到时间变量? 这是我的关键问题 - 尽管阅读了各种 examples,但我只是不明白如何在我的代码中实现它。 @3kstc 已更新。认为这就是你想要的 @3kstc 你会接受这个答案:),还是你在寻找别的东西?

以上是关于如何将图像和时钟添加到 kv 文件的主要内容,如果未能解决你的问题,请参考以下文章

使用 Kivy 的时钟从 kivy 文件 (.kv) 访问不同类的 id/widget?

如何将函数绑定到kv文件中的按钮

如何在kivy中将屏幕背景设置为图像

如何在kivy中制作自我更新时钟标签?

如何使用 xlsxwriter 和 python 将图像添加到 xlsx 文件的标题?

如何将图像和纹理添加到 Three.js JSON 对象文件