如何更新所显示的窗口小部件的TextInput?蟒蛇kivy

问题描述 投票:1回答:1

我有一个猜想.log文件中显示文本的TextInput控件。

在python脚本的样子

logginfo = ObjectProperty()

with open('logtest.log', 'r') as file:
    loginfo = file.read()

该kivy文件看起来像

TextInput:
    id: logginfo
    text: root.loginfo

问题是,日志文件是只读一次,这是显示的内容。

如何更新loginfo每当.log文件的变化?换句话说,我怎么能得到logtest.log文件的活饲料?

python-3.x logging kivy textinput
1个回答
0
投票

你将有能力生产的方法/函数,应该检查并加载更新的文本框为你的文件。没有“AUTOMAGIC”的方式来做到这一点。

我不kivy直接合作,但大多数GUI框架似乎跟某种定时器,或超时对象。 Kivy似乎并不在此情况下,任何的不同。快速搜索发现,Kivy有一个“时钟”对象。我发现了一些文档here

大部分的时间超时这些工作,所以你定义时钟,告诉它要运行什么功能,是否应该重复与否,以及如何经常超时。每次出时钟时间,该函数将被调用。您可以编写任何你喜欢的函数来完成,在这种情况下,检查文件更改。

我建议把文件的哈希(简单的东西如MD5)和存储在一个变量的哈希值。然后,每次出来的时钟时间,它可以简单地比较文件的哈希,你存储在RAM中的散列,如果它改变了,你知道你需要的文件的新内容更新的文本框中。如果没有,你就不需要再访问该文件的另一个超时间隔。

如果您有问题,具体问题你遇到试图通过项目合作请与具体问题的新问题,再次表明在这一点上你的代码。

© www.soinside.com 2019 - 2024. All rights reserved.