1

実行中のスレッドで作成された Chaco プロットを表示するにはどうすればよいですか? 例が私の考えを少し明確にするだろうと思います:

Chaco でプロットを作成するサンプル コードを見てください。

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()

プロットが表示されます。ただし、次のようなことをすると

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

do_something() の実行中にプロットが応答せず、その後閉じられます。説明と回避策を求めています。

4

1 に答える 1