2

TreeViewとListStoreを使用してGUIテーブルを表示しています。定義された行の色を設定するにはどうすればよいですか?それを行う方法のサンプルはありますか?グーグルで私はSimpleListだけの例を見つけました、しかし私はListStoreのためにそれを必要とします。

4

1 に答える 1

1

TreeViewで色を設定する方法は2つあります。1つ目は、色を保持する列を設定してから、TreeViewColumn"set_attributes"のメソッドを使用してセルレンダラーの色を設定します。

my $list_store = Gtk2::ListStore("Glib::String", "Glib::String"); # keep one note and color
my $tree_view = Gtk2::TreeView->new($list_store);
my $col = Gtk2::TreeViewColumn->new;
my $rend = Gtk2::CellRendererText->new;
$col->pack_start($rend, TRUE);
$col->set_attributes($rend,'text' => $i++, 'background' => 1,);
$tree_view->append_column($col);

2番目の方法は次のとおりです。色を保持するために追加の列を使用せずに、TreeViewColumnのメソッドset_cell_data_funcを使用します。

$col->set_cell_data_func($rend, sub {
    my ($column, $cell, $model, $iter) = @_;        
    if ($model->get($iter, 0) eq 'Good') {  
        print "Red\n";
        $cell->set('background' => 'red');
    } else {
        $cell->set('background' => 'white');
    }
});
于 2012-12-28T13:07:47.563 に答える