У меня есть программа, которая выполняет долгосрочные вычисления, где результат отображается в виде графика.
В настоящее время я использую 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?), Немедленно возвращает без закрытия окна?