首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gtk2Hs :小部件交互

Gtk2Hs :小部件交互
EN

Stack Overflow用户
提问于 2015-01-21 09:46:00
回答 1查看 76关注 0票数 0

我正在尝试用Gtk2Hs和Haskell创建一个程序,我想知道是否有可能使不同的小部件相互通信。

我有一个文本条目,用于编写命令,一个绘图区域,它在验证文本条目时绘制一些内容。这两个小部件可以很好地协同工作。

但是,我想在另一个窗口中添加一个“可选的”treeview,当文本条目中的所有命令都被执行时(这可能需要很长的时间)就会更新它。

由于treeview是“可选的”,并且只在之后创建,所以我无法在文本条目定义中定义对其更新的回调(比如绘图区域)。

我会创建一个信号(事件?)在完成所有操作并被treeview捕获以更新其数据时发出。

我的问题是:

  • 有什么方法可以用Gtk2Hs和Glib来实现吗?
  • 是否有一个模块可以用来制作它(如果可能的话,可以移植到Linux/Windows )?
  • 是否有正确的方法与他人进行小部件的交互/交流?

我使用的是GHC7.4.1和Gtk2Hs 0.12.3

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-28 07:41:48

我找到了解决问题的办法:

  1. 在主程序中,我创建了要执行的操作列表的IORef: actionsIO <- newIORef action_to_do_1,action_to_do_2
  2. 我为文本条目创建了自定义组合小部件。 <- textEntry窗口画布状态模型解析器信息actionsIO 在内部,我以这样的方式执行操作列表: 动作<- readIORef actionsIO sequence_动作
  3. 我创建了我的树视图 arwin <- arrayWin模型窗口画布状态信息actionsIO 在列表中,我修改/删除/添加操作,如下所示: 让newaction= new_action_to_do_1,new_action_to_do_2 writeIORef actionsIO 每次使用特殊的条目小部件验证命令时,都会执行这些新操作。

也许有一种“更干净”的方法可以做到这一点,但是这个方法很好地解决了我的问题。

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

https://stackoverflow.com/questions/28063969

复制
相关文章

相似问题

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