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