4
我在理解如何使用與Haskell綁定的GTK +切換按鈕時遇到了一些麻煩。與Haskell和Glade一起使用切換按鈕
我想要做的是顯示一個treeView
兩欄:一欄包含字符串,另一欄包含切換按鈕。用戶必須勾選切換按鈕以選擇他想要在程序的另一部分中使用的輸入。
我的模型是元組列表(String,Bool)
,布爾值應該反映切換按鈕的狀態。最初,都是假的。
這裏是我的代碼:
treeview <- builderGetObject builder castToTreeView "diffDisplayTreeView"
treeviewselect <- treeViewGetSelection difftreeview
dcolumn <- builderGetObject builder castToTreeViewColumn "dcolumn"
selcolumn <- builderGetObject builder castToTreeViewColumn "selcolumn"
dcell <- builderGetObject builder castToCellRendererText "dcell"
selcell <- builderGetObject builder castToCellRendererToggle "selcell"
[...]
store <- listStoreNew modelFromSomewhereElse
cellLayoutSetAttributes dcolumn dcell store $ \x -> [cellText := fst(x)]
cellLayoutSetAttributes selcolumn selcell store $ \x -> [cellToggleActivate := snd(x)]
treeViewSetModel treeview store
它運作良好,在initating TreeView的,但是當我點擊切換按鈕,它仍然在它initalized的狀態。我想趕上cellToggled
爲特定的單元格,並正確地更改模型,但我不太明白如何在treeView選擇內導航。
任何幫助,將不勝感激:)
對不起,我沒有Haskell代碼來顯示你。無論如何,您必須連接到渲染器的「切換」信號並自行更改商店。渲染器將自動顯示當前狀態。 – theGtknerd
看來它工作時,我將商店更改綁定到一個'clicked'按鈕,但'切換'信號是有點兒車(這裏有一些混亂的類型) –