我似乎无法编写使用 gtk 3 绑定gi-gtk
(特别是版本 3.0.32)创建和填充 TreeView 的工作代码。我可以在网上找到的所有示例都适用于不适用于gi-gtk
. 在这种情况下,文档本身尤其无用。
我试过复制这个例子的简化版(一行一列),如下
import qualified GI.Gtk as Gtk
import Data.GI.Base.GType (gtypeString)
import Data.GI.Base.GValue (IsGValue(..))
main :: IO ()
main = do
Gtk.init Nothing
w <- Gtk.windowNew Gtk.WindowTypeToplevel
treeView <- Gtk.treeViewNew
store <- Gtk.listStoreNew [gtypeString]
Gtk.treeViewSetModel treeView (Just store)
iter <- Gtk.listStoreAppend store
str <- toGValue (Just "foo")
Gtk.listStoreSetValue store iter 0 str
Gtk.treeViewColumnNew >>= Gtk.treeViewAppendColumn treeView
Gtk.containerAdd w treeView
#showAll w
Gtk.main
结果显然是错误的,看起来像一个部分绘制的树视图,没有显示文本。我不知道我做错了什么,所以如果有人能展示如何修复代码或将我指向一个工作示例,我将不胜感激。