HaskellとのGTK +バインディングのトグルボタンの使い方を理解する上で問題があります。HaskellとGladeのトグルボタンを使用
私がしたいことは、treeView
を2つの列、つまりストリングを含むものとトグルボタンを含むものとで表示することです。ユーザは、トグルボタンをチェックして、プログラムの別の部分で使用したい入力を選択しなければならない。
私のモデルは、トグルボタン(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
それは、ツリービュー複製を開始でうまく動作しますが、私はトグルボタンをクリックしたときに、それがinitalizedた状態で残る:
は、ここに私のコードです。特定のセルのcellToggled
をキャッチして、モデルを適切に変更したいのですが、ツリービューの選択範囲内をナビゲートする方法がわかりません。
任意の助けいただければ幸いです:) theGtknerdのコメントやドキュメントのいくつかの深刻な掘削に
申し訳ありませんが、あなたに表示するためのHaskellコードはありません。とにかくレンダラの 'toggled'シグナルに接続して自分で店舗を変更する必要があります。レンダラーは自動的に現在の状態を表示します。 – theGtknerd
店舗の変更を「クリックされた」ボタンにバインドしたときに動作していたようですが、「トグルされた」信号はややバグがあります。 –