5

Gtk+ では、列ごとに複数のセル レンダラーを使用できますが、行ごとに異なるセル レンダラーを使用したいと考えています。たとえば、オブジェクトのプロパティをツリー ビューに一覧表示したいとします。ブール値のプロパティの場合、 を編集してまたはGtkCellRendererTextを入力するよりも、トグル ボタンを使用する方がはるかに簡単です。TRUEFALSE

経由でコールバックを設定することにより、行データに反応できることを知っていますgtk_tree_view_column_set_cell_data_func()。しかし、コールバックでは、セル レンダラーは既に修正されており、その外観を変更することしかできません。

編集: ptomato は、Vala でそれを行う方法を指摘しました。この情報を使用して、GObject とリスト ストア (プロパティ名を含む最初の列を想定) を受け取る C ベースのセル レンダラーを構築し、プロパティのタイプに応じてカスタム セルを表示します。また、これを組み合わせて使いやすくするツリー ビュー ウィジェットをサブクラス化しました。どちらのコンポーネントもGithubにあります。

4

1 に答える 1

6

方法dconf-editor次のとおりです。サブクラスGtkCellRendererでカスタムレンダラーを作成し、必要に応じて、などを返すというプロパティを作成し、、、などのすべてのシグナルをオーバーライドしてrenderer、基になる。に渡します。GtkCellRendererTextGtkCellRendererToggleGtkCellRendererget_sizerenderactivaterenderer

ヴァラで行われますが、Cに変換するのはそれほど難しいことではありません。

于 2012-07-03T05:55:44.550 に答える