Pertanyaan Cara membuat GtkPixbuf dari item stok llike (new_from_stock)?


Saya ingin mendapatkan item stok untuk menggunakannya dalam tampilan pohon tetapi saya tidak bisa mendapatkannya sebagai pixbuf langsung karena tidak ada new_from_stock metode untuk pixbufs !!


5
2017-08-23 12:43


asal


Jawaban:


katakanlah Anda ingin mendapatkan pixbuf dari stock_item.

Ada 2 cara:

Pertama (mudah):

pixbuf = gtk_widget_render_icon ( widget, stock_item, size )

Kedua (keras):

Anda perlu mencarinya di daftar pabrik ikon default:

icon_set = gtk_style_lookup_icon_set ( style, stock_item )

ATAU:

icon_set = gtk_icon_factory_lookup_default ( $stock_item )

lalu periksa ukuran yang tersedia dengan get_sizes. Periksa apakah ukuran yang Anda inginkan tersedia atau dapatkan ukuran terbesar yang akan menjadi yang terakhir dalam daftar yang dikembalikan. Maka Anda perlu membuatnya untuk mendapatkan pixbuf:

pixbuf = gtk_icon_set_render_icon ( icon_set, style, direction, state, size, widget )

Kemudian skala ke ukuran apa pun yang Anda inginkan menggunakan:

gdk_pixbuf_scale_simple ( pixbuf, width, height, GdkInterpType )

Kuharap kau mengerti


4
2017-08-23 13:31



Apakah Anda mengetahui properti ikon-nama di GtkCellRendererPixbuf? Itu harus menyelesaikan masalah menampilkan ikon stok dalam tampilan pohon.


2
2017-08-23 12:51



Versi jawaban ophidion yang sedikit lebih mudah (dan lebih kedepan) adalah melakukan hal-hal berikut:

#define ICON_NAME "go-next"
#define ICON_SIZE 96 /* pixels */

GError *error = NULL;

GtkIconTheme *icon_theme = gtk_icon_theme_get_default();
GdkPixbuf *pixbuf = gtk_icon_theme_load_icon(icon_theme, ICON_NAME, ICON_SIZE,
                                             GTK_ICON_LOOKUP_USE_BUILTIN, &error);

Dengan asumsi Anda tidak mendapatkan kesalahan, Anda dapat menempatkan hasilnya GdkPixbuf dalam treemodel, atau menggunakannya dengan GtkButton, atau apa pun yang Anda ingin lakukan dengannya.

Seperti yang orang lain tunjukkan, Item stok GTK cenderung tidak digunakan lagi, jadi Anda harus menggunakan nama sesuai dengan Ikon Penamaan Ikon sebaliknya jika Anda ingin menjadi bukti masa depan. Lihat spreadsheet Google Docs ini untuk nama spesifikasi ikon yang setara untuk item stok GTK.


0
2017-10-04 05:54



Kamu dapat memakai gtk_image_new_from_stock(), lalu gunakan pixbuf mentah gtk_image_get_pixbuf().

Tapi periksa @ jku jawab dulu, kedengarannya seperti solusi yang tepat. Saya hanya ingin menambahkan bagaimana Anda melakukannya dalam konteks lain.


-1
2017-08-23 12:53