如何访问ListStore GtkBuilder



我正在使用以下代码加载我的gui元素:

import Graphics.UI.Gtk
main = do
  initGUI
  -- loading
  builder <- builderNew
  builderAddFromFile builder "gui.glade"
  window <- builderGetObject builder castToWindow "window"
  onDestroy window mainQuit
  widgetShowAll window
  mainGUI

我如何访问名为"listStore"的ListStore,就像我如何访问一个名为"window"的Window一样

示例:

-- doesn't compile because castToListStore is part of a hidden module, unlike castToWindow :(
listStore <- builderGetObject builder castToListStore "listStore"

这取决于你想用它做什么…

  1. 您可以始终使用castToTreeModel来遍历listStore中的项。。。。这提供了只读信息。

  2. 您可以在Haskell中完全忽略listStore中的数据,只需将其连接到glade文件中适当的小部件即可使用。这对于固定的listStore(即目录或对更改或查询没有意义的东西)来说是有意义的。

  3. 您可以直接在haskell中创建listStore,并使用treeViewSetModel将其绑定到使用它的小部件。这使您可以完全访问数据,您可以添加或删除项目,它将在视图中更改。

相关内容

  • 没有找到相关文章

最新更新