実行中のスレッドで作成された 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() の実行中にプロットが応答せず、その後閉じられます。説明と回避策を求めています。