在运行线程中显示查科图



如何显示在运行线程中创建的查科图?我想举个例子会让我的想法更清晰一些:

看看我的例子代码,创建一个情节与查科。

from traits.api import HasTraits, Instance
from traitsui.api import View, Item
from chaco.api import ArrayPlotData, Plot
from enable.component_editor import ComponentEditor
class LinePlot(HasTraits):
    plot = Instance(Plot)
    traits_view = View(
        Item('plot', editor=ComponentEditor(), 
             show_label=False
        ),
        kind='live'
    )
    def __init__(self):
        super(LinePlot, self).__init__()
        x = range(10)
        plotdata = ArrayPlotData(x=x, y=x)
        self.plot = Plot(plotdata)
        self.plot.plot(('x','y'))
def run():
    l = LinePlot()
    l.edit_traits()
    do_something()
def do_something():
    import time;time.sleep(10)

如果我通过

调用run函数
run()

的情节将显示。但是如果我输入

import threading
t = threading.Thread(target=run)
t.start()

在执行do_something()时,plot没有响应,然后关闭。

首先,这个问题不是由chaco限制或引起的。它来自底层gui工具包,确切地说是PyQt或wx。通过调用sleep,还可以禁止gui处理事件。作为一般规则,永远不要做gui更改是一个线程。

相关内容

  • 没有找到相关文章

最新更新