2013-11-25 16 views
1

에 액세스 할 수있는 방법 : I라는 Window를 액세스 한 방법처럼, 나는 ListStore 명 "listStore"를 액세스 할 수있는 방법난 내 GUI의 요소로드하려면 다음 코드를 사용하여 해요 ListStore GtkBuilder

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 

을 "창"

예 :

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

답변

2

그것은 .... 당신이 그것으로 수행 할 작업을 따라

,
  1. 언제나 castToTreeModel을 사용하여 listStore의 항목을 반복 할 수 있습니다. 이것은 읽기 전용 정보를 제공합니다.

  2. 하스켈에서 listStore의 데이터를 모두 무시하고 글라이드 파일의 해당 위젯에서 사용할 수 있도록 와이어 링할 수 있습니다. 이는 고정 된 listStore (즉, 목차 또는 변경 또는 쿼리를 이해하지 못하는 테이블)에 적합합니다.

  3. haskell에서 listStore를 직접 생성하고이를 treeViewSetModel을 사용하여 위젯에 바인딩 할 수 있습니다. 이렇게하면 데이터에 대한 전체 액세스 권한이 부여되고 항목을 추가 또는 삭제할 수 있으며보기에서 변경됩니다.

+0

3 가지 옵션이 훌륭했습니다! 다른 사람들이 고심하고있는 경우에 사용했던 예제 코드는 다음과 같습니다. http://www.haskell.org/haskellwiki/Gtk2Hs/Tutorials/TreeView – mcjohnalds45