我有一个猜想.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文件的活饲料?
你将有能力生产的方法/函数,应该检查并加载更新的文本框为你的文件。没有“AUTOMAGIC”的方式来做到这一点。
我不kivy直接合作,但大多数GUI框架似乎跟某种定时器,或超时对象。 Kivy似乎并不在此情况下,任何的不同。快速搜索发现,Kivy有一个“时钟”对象。我发现了一些文档here。
大部分的时间超时这些工作,所以你定义时钟,告诉它要运行什么功能,是否应该重复与否,以及如何经常超时。每次出时钟时间,该函数将被调用。您可以编写任何你喜欢的函数来完成,在这种情况下,检查文件更改。
我建议把文件的哈希(简单的东西如MD5)和存储在一个变量的哈希值。然后,每次出来的时钟时间,它可以简单地比较文件的哈希,你存储在RAM中的散列,如果它改变了,你知道你需要的文件的新内容更新的文本框中。如果没有,你就不需要再访问该文件的另一个超时间隔。
如果您有问题,具体问题你遇到试图通过项目合作请与具体问题的新问题,再次表明在这一点上你的代码。