Gtk+ では、列ごとに複数のセル レンダラーを使用できますが、行ごとに異なるセル レンダラーを使用したいと考えています。たとえば、オブジェクトのプロパティをツリー ビューに一覧表示したいとします。ブール値のプロパティの場合、 を編集してまたはGtkCellRendererText
を入力するよりも、トグル ボタンを使用する方がはるかに簡単です。TRUE
FALSE
経由でコールバックを設定することにより、行データに反応できることを知っていますgtk_tree_view_column_set_cell_data_func()
。しかし、コールバックでは、セル レンダラーは既に修正されており、その外観を変更することしかできません。
編集: ptomato は、Vala でそれを行う方法を指摘しました。この情報を使用して、GObject とリスト ストア (プロパティ名を含む最初の列を想定) を受け取る C ベースのセル レンダラーを構築し、プロパティのタイプに応じてカスタム セルを表示します。また、これを組み合わせて使いやすくするツリー ビュー ウィジェットをサブクラス化しました。どちらのコンポーネントもGithubにあります。