我有一个程序执行长时间的计算,结果以图形展示。目前我使用Chart-0.14实现。我想展示部分结果,并在计算过程中更新。函数
我想要实现如下功能:
Graphics.Rendering.Chart.Gtk.updateCanvas :: Renderable a -> DrawingArea -> IO Bool
可以实现,但我无法从图形中获取DrawingArea。函数renderableToWindow :: Renderable a -> Int -> Int -> IO ()
不返回任何内容(而且在窗口关闭前也不会返回)。我想要实现如下功能:
main = do
drawingArea = forkRenderableToWindow (toRenderable $ plotLayout $
plot [0,0.1..10] sin "sin(x)") 640 480
updateCanvas (toRenderable $ plotLayout $ plot [0,0.1..10] sin "sin(x)") drawingArea
我该如何做?我需要重新实现Graphics.Rendering.Chart.Gtk
中的函数,以返回DrawingArea
并以某种方式(我应该如何做?forkIO?)立即返回而不关闭窗口吗?
castToDrawingArea
来达到这个目的。 - Thomas M. DuBuisson