我正在尝试使用 Gtk2Hs 和 Haskell 创建一个程序,我想知道是否可以让不同的小部件相互通信。
我有一个文本条目,用于编写命令,一个绘图区域,它在验证文本条目时绘制一些东西。这两个小部件可以很好地协同工作。
但是,我想在不同的窗口中添加一个“可选”树视图,当文本条目中的所有命令都已执行时,该树视图将被更新(这可能需要很长时间)。
由于树视图是“可选的”并且仅在之后创建,因此我无法在文本条目定义(如绘图区域)中定义对其更新的回调。
我会创建一个信号(事件?),以便在所有操作完成并被树视图捕获以更新其数据时发出。
我的问题是:
- 有没有办法用 Gtk2Hs 和 Glib 做到这一点?
- 是否有可用于制作它的模块(如果可能,可移植到 Linux/Windows)?
- 是否有正确的方法使小部件与他人交互/通信?
我正在使用 GHC 7.4.1 和 Gtk2Hs 0.12.3