如何处理Haskells gi中的列表框点击

我正在尝试使用Gtk和Haskell。 我被卡住了。 此链接显示我的实验。 https://github.com/bigos/my-haskell-gtk-3-tutorial/blob/master/5-layout-containers.org#edit-the-source-2

我正在尝试打印点击列表框行的索引。 下面的代码给我一个我不明白的类型错误。

 onListBoxRowSelected listbox2 (row -> putStrLn (listBoxRowGetIndex row))

我需要一个例子,我可以看到有人能够正确处理listBox行上的点击事件。

错误消息

未找到类型为'Maybe GI.Gtk.Objects.ListBoxRow.ListBoxRow'的所需祖先'GI.Gtk.Objects.ListBoxRow.ListBoxRow'。 •在'putStrLn'的第一个参数中,即'(listBoxRowGetIndex row)'在表达式中:putStrLn(listBoxRowGetIndex row)在'onListBoxRowSelected'的第二个参数中,即


回调参数类型Maybe GI.Gtk.Objects.ListBoxRow.ListBoxRowMaybe GI.Gtk.Objects.ListBoxRow.ListBoxRow 。 如果没有选择Nothing它可能是NothinglistBoxRowGetIndex的参数具有多态类型,所以它试图找到Maybe GI.Gtk.Objects.ListBoxRow.ListBoxRow实例,但是没有这样的实例。 最小的工作代码是

onListBoxRowSelected listbox2 ((Just row) -> listBoxRowGetIndex row >>= print)

但是,考虑到应用程序逻辑,最好处理Nothing情况。

链接地址: http://www.djcxy.com/p/33159.html

上一篇: How do I handle clicks on a listBox in Haskells gi

下一篇: Print empty list in Haskell