私は選択可能な項目の表を作成するためにListStoreに裏打ちされたPyGTK 2.0のTreeViewを使用しています。行のどこかを一度クリックするだけで、個々の行を選択して選択を解除する必要があります。行をクリックすると、ハイライトとその行のチェックボックスの値だけが切り替わります。クリックごとにツリービューの行選択を個別に切り替えます
複数の選択肢とチェックボックスの列でツリービューを作成しましたが、コントロールを保持せずに個々の行の選択を切り替えることはできません。私はそれが、少なくともチェックボックスをトグルなるように、ビューに選択機能を接続しようとしましたが、機能はas described in the tutorialを動作しません:選択機能をトリガー
self.dataview = gtk.TreeView(store)
self.dataview.get_selection().set_mode(gtk.SELECTION_MULTIPLE)
self.dataview.get_selection().set_select_function(self.on_row_selected, None)
def on_row_selected(self, selection, model, path, is_selected, data):
print selection
print model
print path
print is_selected
print data
model.set_value(path, 0, is_selected)
はエラーを生成します。
TypeError: on_row_selected() takes exactly 6 arguments (3 given)
関数の引数を*args
に置き換えると、path
とdata
しか提供されません。
set_select_function
の動作の他に、1回のクリックで行選択を切り替える最良の方法は何ですか。データモデルの列と同期するにはどうすればよいですか?