首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图与gtk2hs

图与gtk2hs
EN

Stack Overflow用户
提问于 2018-07-07 14:38:29
回答 1查看 155关注 0票数 1

我一直在从事我的暑期研究项目,我一直在使用图表库绘制边、节点的图表。我是在模拟信息在整个图中的传播,所以我的图表一直在谨慎地更新。我有更新图形状态数据结构、绘制图表等的所有基础设施。

出于测试目的,我刚刚使用了带有getLine反馈循环的SVG后端,更新了图表,然后将其呈现到相同的'.svg‘文件中。这显然很糟糕,并且依赖于我的.svg查看器在文件更新时更新的事实。

我已经研究过如何使用GTK后端,因此我只需将图表呈现给GTK窗口中的drawingArea即可。我已经安装了所有这些,并且一直在乱搞一些小程序。

然而,我无法思考如何实现我的程序。我已经看到了一些如何在GTK窗口中绘制图表的例子,但似乎没有一个例子包括基于按钮按下的图像更新,甚至是命令行中的一些内容。

我听说过一些关于使用GTK进行多线程处理的消息。我正在考虑写一个函数,比如:

代码语言:javascript
复制
renderDiagram :: DrawingArea -> Diagram B -> IO ()
renderDiagram c d = do
 c `on` exposeEvent $ do
   liftIO (defaultRender c d)
   return True
 widgetQueueDraw c

若要更改画布公开时呈现的关系图,请执行强制公开事件。如果我然后运行我的主程序执行更新图形,并在一个单独的线程上运行renderDiagrammainGUI,我会得到我想要的结果吗?有更干净的方法吗?

如果有人能指出正确的方向,或提供一些外部阅读,那就太好了。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-07 15:05:51

你查过这个文章了吗?我想这篇文章正好解释了你想做什么。

如果你想在鼠标点击时做些什么,你可以使用buttonPressEvent而不是motionNotifyEvent

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51224195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档