Web lists-archives.com

Re: Combobox and columns




This bit is a little non-obvious. The related documentation is:
https://developer.gnome.org/gtk3/stable/GtkCellLayout.html#gtk-cell-layout-set-attributes

So you can pass various attributes into the renderer / cell layout /
whatever. I'm still slightly confused by it, but I can make it work :)

In perl, I have a convenience method for setting up renderers for
combos with multi-column models:

---

sub create_combo_renderers {

    my ( $self, $widget, $text_column, $icon_column ) = @_;

    if ( $icon_column ) {
        my $renderer = Gtk3::CellRendererPixbuf->new;
        $widget->pack_start( $renderer, FALSE );
        $widget->set_attributes( $renderer, pixbuf => $icon_column );
    }

    my $renderer = Gtk3::CellRendererText->new;
    $widget->pack_start( $renderer, FALSE );
    $widget->set_attributes( $renderer, text => $text_column );

}

---

It's the last line:
$widget->set_attributes( $renderer, text => $text_column );
 ... that tells the renderer / cell layout which column to use.

Dan


On Mon, Apr 3, 2017 at 8:33 AM, Eric Cashon via gtk-list
<gtk-list@xxxxxxxxx> wrote:
> Hi Axel,
>
> How do you want to change the list column combo in your program?
>
> If you use a combo2 box row to change a combo1 box column from a list you
> might have a "changed" callback that looks something like the following.
>
> Eric
>
> ...
> GtkCellRenderer *renderer=NULL;
> ...
> renderer=gtk_cell_renderer_text_new();
> ...
> static void change_column(GtkComboBox *combo2, GtkComboBox *combo1)
>   {
>     gint row=gtk_combo_box_get_active(combo2);
>     gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo1),
> GTK_CELL_RENDERER(renderer), "text", row, NULL);
>     gtk_widget_queue_draw(GTK_WIDGET(combo1));
>   }
>
>
>
> -----Original Message-----
> From: axel <axel.voges@xxxxxxxxxx>
> To: gtk-list <gtk-list@xxxxxxxxx>
> Sent: Sun, Apr 2, 2017 6:39 am
> Subject: Combobox and columns
>
> Have a liststore with 4 columns. And a combobox with a cellrenderer.
> UI made with Glade. Programm is written in C.
>
> How to choose one of the columns out of the liststore to use/show in the
> combobox?
> I can set in Glade the actual column but I need it to be done on runtime.
>
>
>
> Cheers,
> Axel
>
> _______________________________________________
> gtk-list mailing list
> gtk-list@xxxxxxxxx
> https://mail.gnome.org/mailman/listinfo/gtk-list
>
> _______________________________________________
> gtk-list mailing list
> gtk-list@xxxxxxxxx
> https://mail.gnome.org/mailman/listinfo/gtk-list
>
_______________________________________________
gtk-list mailing list
gtk-list@xxxxxxxxx
https://mail.gnome.org/mailman/listinfo/gtk-list