【问题标题】:How can I access a ListStore GtkBuilder如何访问 ListStore GtkBuilder
【发布时间】:2013-11-25 01:48:16
【问题描述】:

我正在使用以下代码来加载我的 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"

【问题讨论】:

    标签: haskell gtk gtk2hs gtkbuilder


    【解决方案1】:

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

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

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

    3. 您可以直接在haskell 中创建listStore,并使用treeViewSetModel 将其绑定到使用它的widget。这使您可以完全访问数据,您可以添加或删除项目,并且它会在视图中发生变化。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    相关资源
    最近更新 更多