Toolbar рисует вместо иконки ошибку [gtk]
Вроде бы всё правильно делаю, в assets лежит картинка 64x64. вот код.
static void create_app ( ) {
app_win = gtk_application_window_new ( app );
GtkWidget *toolbar = gtk_toolbar_new ( );
GtkToolItem *tool_item_2d = gtk_toggle_tool_button_new ( );
gtk_toggle_tool_button_set_active ( ( GtkToggleToolButton * ) tool_item_2d, TRUE );
gtk_tool_button_set_icon_name ( ( GtkToolButton * ) tool_item_2d, "assets/2d.svg.png" );
gtk_toolbar_insert ( ( GtkToolbar * ) toolbar, tool_item_2d, 0 );
GtkWidget *box = gtk_box_new ( GTK_ORIENTATION_VERTICAL, 0 );
gtk_box_pack_start ( ( GtkBox * ) box, toolbar,
TRUE,
TRUE,
FALSE
);
gtk_container_add ( ( GtkContainer * ) app_win, box );
gtk_widget_show_all ( app_win );
}
Ответы (1 шт):
Автор решения: xverizex
→ Ссылка
А всё, понял как делать. надо использовать тему иконок и указать путь, где искать иконки. вот код.
static void create_app ( ) {
app_win = gtk_application_window_new ( app );
GtkWidget *toolbar = gtk_toolbar_new ( );
GtkToolItem *tool_item_2d = gtk_toggle_tool_button_new ( );
gtk_toggle_tool_button_set_active ( ( GtkToggleToolButton * ) tool_item_2d, TRUE );
gtk_tool_button_set_icon_name ( ( GtkToolButton * ) tool_item_2d, "2d.svg" );
gtk_toolbar_insert ( ( GtkToolbar * ) toolbar, tool_item_2d, 0 );
GtkWidget *box = gtk_box_new ( GTK_ORIENTATION_VERTICAL, 0 );
gtk_box_pack_start ( ( GtkBox * ) box, toolbar,
TRUE,
TRUE,
FALSE
);
gtk_container_add ( ( GtkContainer * ) app_win, box );
gtk_widget_show_all ( app_win );
}
static void g_startup ( GtkApplication *app, gpointer data ) {
GMainLoop *loop = g_main_loop_new ( NULL, FALSE );
const gchar *paths = "assets";
theme_icon = gtk_icon_theme_get_default ( );
gtk_icon_theme_set_search_path ( theme_icon, &paths, 1 );
create_menu_config ( );
create_app ( );
g_main_loop_run ( loop );
}