【发布时间】:2017-12-09 21:46:26
【问题描述】:
我现在正在制作一个 Kivy 应用程序,在其中的一部分中,我将数据作为浮点数数组获取,我想使用这些数据在 Kivy 中画一条线。 问题是,我希望它不断运行,所以我使用了线程,但 Kivy 不会画线。这是说明问题的代码的精简版本:
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.graphics import Line
from threading import Thread
class MyWidget(Widget):
def Draw(self):
with self.canvas:
Line(points=[100, 200, 300, 400])
class MainApp(App):
def build(self):
return MyWidget()
Thread(target=MyWidget().Draw).start()
MainApp().run()
我希望这段代码用点 100、200、300、400 画一条线。 但相反,应用程序打开并且什么也不做,我们将不胜感激!
【问题讨论】:
-
绘图操作必须从主线程执行。尝试为执行绘图的函数运行
Clock.schedule_once(your_drawing_function, 0),而不是直接从线程运行它。
标签: python multithreading python-3.x kivy