我遇到了这个问题:
已创建一个屏幕,以显示同步事件期间可能持续一分钟的消息。每两秒钟或多或少会收到一条消息。
我正在扩展,当收到消息时,该消息将立即打印。
但是此代码会发生什么情况,即所有消息在整个同步周期结束时立即打印,而不是在每条消息到达时都按预期方式打印。
.py:
class SyncScreen(Screen):
content = StringProperty()
def on_enter(self):
self.content = "Synchronization messages"
controller.synchronize(self.update_text)
def update_text(self, msg): # Callback
self.content = self.content + msg
.kv:
<SyncScreen>:
MDBoxLayout:
orientation: "vertical"
MDToolbar:
title: "Synchronization"
MDBoxLayout:
orientation: "vertical"
padding: 10
TextInput:
text: root.content
size_hint: 1.0, 1.0
multiline: True
答案 0 :(得分:1)
您的synchronize
函数被阻止,Kivy在返回之前无法绘制任何内容。在线程中运行它,或执行类似的操作使其每帧返回(并重新安排)。