如何访问一个ListStore GtkBuilder(How can I access a List

2019-10-19 01:09发布

我用下面的代码加载我的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名为“窗口”

例:

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

Answer 1:

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

  1. 您可以随时使用castToTreeModel通过在listStore项目迭代....这使虽然只读信息。

  2. 你可以忽略listStore的数据完全在Haskell,和刚丝它通过在林间空地文件中的相应部件使用。 这使得固定listStore感(内容或一些没有意义的改变或查询即 - 表)。

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



文章来源: How can I access a ListStore GtkBuilder