🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.os.linux.programowanie
4 messages
4 total messages Started by Badman Wed, 07 Dec 2011 12:40
Jak umieścić Stock Item w gtk_tree_view _
#72395
Author: Badman
Date: Wed, 07 Dec 2011 12:40
40 lines
2232 bytes
Witam

W jaki sposób w gtk_tree_view'ie umieszczać "ikony" Stock Item ?
Gdzieś doczytałem, że komórka powina mieć atrybut stock-id, więc mój
kod wygląda tak:
[...]

  listview = gtk_tree_view_new ();

  kol = gtk_tree_view_column_new ();

  gtk_tree_view_column_set_title ( kol, "Stock Item" );

  gtk_tree_view_append_column ( GTK_TREE_VIEW(listview), kol );

  komorka = gtk_cell_renderer_pixbuf_new ();

  gtk_tree_view_column_add_attribute(kol, GTK_CELL_RENDERER(komorka),
"stock-id", 1);

  gtk_tree_view_column_pack_start(kol, komorka, TRUE);

  lista = gtk_list_store_new ( 2, GDK_TYPE_PIXBUF, G_TYPE_STRING );

  gtk_list_store_append ( lista, &iter );

  ikona = gtk_widget_render_icon (win, GTK_STOCK_EDIT,
GTK_ICON_SIZE_MENU, NULL);

  gtk_list_store_set ( lista, &iter, 0, image, 1, GTK_STOCK_EDIT, -1);

  gtk_tree_view_set_model ( GTK_TREE_VIEW(listview),
GTK_TREE_MODEL(lista) );

[...]

Jednak nie działa :(
--
Pozdrawiam
Badman
Re: Jak umieścić Stock Item w gtk_tree_view _
#72396
Author: Waldek M.
Date: Wed, 07 Dec 2011 17:26
23 lines
1692 bytes
Dnia Wed, 7 Dec 2011 04:40:08 -0800 (PST), Badman napisał(a):

> W jaki sposób w gtk_tree_view'ie umieszczać "ikony" Stock Item ?
> Gdzieś doczytałem, że komórka powina mieć atrybut stock-id, więc mój
> kod wygląda tak:

>   komorka = gtk_cell_renderer_pixbuf_new ();
> 
>   gtk_tree_view_column_add_attribute(kol, GTK_CELL_RENDERER(komorka),
> "stock-id", 1);

Czy stock-id czasem nie jest typu gchar* ?
http://developer.gnome.org/gtk3/stable/GtkCellRendererPixbuf.html#GtkCellRendererPixbuf--stock-id

Zerknij też tutaj - co prawda Python, ale może Ci to coś podpowie.
http://faq.pygtk.org/index.py?req=edit&file=faq13.006.htp

> Jednak nie działa :(

Nie dostajesz czasem żadnych warningów GTK w czasie wykonania?

Pozdrawiam,
Waldek
Re: Jak umieścić Stock Item w gtk_tree_view _
#72397
Author: Waldek M.
Date: Wed, 07 Dec 2011 17:31
20 lines
1667 bytes
Dnia Wed, 7 Dec 2011 18:26:18 +0100, Waldek M. napisał(a):
>> W jaki sposób w gtk_tree_view'ie umieszczać "ikony" Stock Item ?
>> Gdzieś doczytałem, że komórka powina mieć atrybut stock-id, więc mój
>> kod wygląda tak:
> 
>>   komorka = gtk_cell_renderer_pixbuf_new ();
>> 
>>   gtk_tree_view_column_add_attribute(kol, GTK_CELL_RENDERER(komorka),
>> "stock-id", 1);
> 
> Czy stock-id czasem nie jest typu gchar* ?
> http://developer.gnome.org/gtk3/stable/GtkCellRendererPixbuf.html#GtkCellRendererPixbuf--stock-id

Grrrr... autopoprawka; nie doczytałem do końca kodu.
Przecież trzymasz atrybut stock-id w kolumnie. Moja kulpa.

Ale reszty mozesz spróbować ;-)

Pozdr.
Waldek
Re: Jak umieścić Stock Item w gtk_tree_view _
#72398
Author: Badman
Date: Thu, 08 Dec 2011 08:19
49 lines
2606 bytes
W końcu udało mi się :)
Poniżej przykład, ponieważ to co jest w gtk-demo wykorzystuje
rejestracje nowego typu składającego się z kilku elementów:

1) Wykorzystanie atrybutu stock-id w  GtkCellRendererPixbuf:

  GtkWidget *listview;
  GtkTreeViewColumn *kol;
  GtkCellRendererPixbuf  *komorka;
  GtkListStore *lista;
  GtkTreeIter iter;

  listview = gtk_tree_view_new ();

  kol = gtk_tree_view_column_new ();

  gtk_tree_view_column_set_title ( kol, "Stock Item" );

  komorka = gtk_cell_renderer_pixbuf_new ();

  gtk_tree_view_column_pack_start (kol, komorka, TRUE);

  /* UWAGA: ważne jest dodanie atrybutu za
gtk_tree_view_column_pack_start, kiedy będzię przed nie działa */
  gtk_tree_view_column_add_attribute(kol, GTK_CELL_RENDERER(komorka),
"stock-id", 1);

  komorka = gtk_cell_renderer_text_new ();

  gtk_tree_view_column_pack_start (kol, komorka, TRUE);

  gtk_tree_view_append_column ( GTK_TREE_VIEW(listview), kol );


  lista = gtk_list_store_new ( 2, GDK_TYPE_PIXBUF, G_TYPE_STRING );


  gtk_list_store_append ( lista, &iter );

  /* Dodaje elemtu stock na podstawie stock-id, w tym przypadku
GTK_STOCK_APPLY */
  gtk_list_store_set ( lista, &iter,  1, GTK_STOCK_APPLY, -1);

  gtk_tree_view_set_model ( GTK_TREE_VIEW(listview),
GTK_TREE_MODEL(lista) );

--
Pozdrawiam
Badman
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads