2

我正在探索 Enthought 的Traits / TraitsUI / Chaco,因为我想利用强大的动态绘图工具。我有来自外部来源的数据,我希望用它来更新一组 Chaco 图。我研究了和示例,但它们会定期从重复的 Timer 事件的流/文件/源中提取数据,而不是接收异步输入事件。spectrum.pydata_stream.py

我不清楚如何删除 Timer 而是异步触发 Array 更新。可能可以使用计时器进行轮询,但我想扩展以合并几个不同的外部源,并且我需要某种“服务器”进程来管理它——它不能真正被 GUI 主循环阻止。截至目前,我想合并一个 TCP 服务器,它接受不可预测的传入客户端连接,每个连接都提供新的数据来绘制。

是否可以设置第二个线程来处理所有套接字通信并使用它来调用.set_data()以触发绘图重绘?或者这会干扰 GUI 主循环和/或导致 Traits/Chaco 中的竞争条件?

或者是否有另一种方式来思考这个问题,在 Traits 范式中更有意义?

4

1 回答 1

2

'set_data' 确实会触发重绘,因此不需要计时器。但请注意,重绘发生在主 gui 线程中。

于 2013-11-22T19:10:50.890 回答