我正在使用以下代码加载我的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"
答案 0 :(得分:2)
这取决于你想用它做什么......
您始终可以使用castToTreeModel来遍历listStore中的项....这样只会提供只读信息。
您可以在Haskell中完全忽略listStore中的数据,然后将其连接起来以供glade文件中的相应小部件使用。这对于固定的listStore是有意义的(即内容表或对更改或查询没有意义的东西)。
您可以直接在haskell中创建listStore,并使用treeViewSetModel将其绑定到使用它的小部件。这使您可以完全访问数据,您可以添加或删除项目,它将在视图中更改。