Ir para conteúdo
Fórum Script Brasil
  • 0

Gtk+ 3: Problemas com GResource para linkar icones e imagens do projeto


calmeida

Pergunta

Boa tarde a todos,

Estou começando a estudar C com a biblioteca GTK+ 3.0 para criar um CRUD simples, mas estou tendo problemas em exibir os ícones.

se utilizar o caminho físico da imagem funciona, desde que eu rode o executável dentro da própria pasta. Ex.:

...
    // Configuracao de icone no header
    GError *error = NULL;
    tticon = gdk_pixbuf_new_from_file("images/logo.png", &error);
    
    if(!tticon)
    {
		fprintf(stderr, "%s\n", error->message);
		g_error_free(error);
	}
	
	//Atribui o icone a janela
	gtk_window_set_icon(GTK_WINDOW(window), tticon);
...
~/projetos/teste$ ./main

 

Dei uma pesquisada e encontrei o GResource que aparentemente é simples de implementar, mas quando executo apresenta o erro:

 

(main:7644): Gtk-WARNING **: Error loading icon from file 'resource:///br/com/myapp/images/logo.png':
Falha ao abrir o arquivo “resource:///br/com/myapp/images/logo.png”: Arquivo ou diretório não encontrado

 

Segue abaixo o código que implementei:

myapp.gresource.xml

<?xml version="1.0" encoding="UTF-8"?>
<gresources>
  <gresource prefix="/br/com/myapp/">
    <file>images/logo.png</file>
  </gresource>
</gresources>

main.c

#include <stdio.h>
#include <stdlib.h>
#include <gtk/gtk.h>

void destroy( GtkWidget *widget,gpointer   data )
{
   gtk_main_quit();
}


int main(int argc, char **argv)
{
	GtkWidget *window;
	GdkPixbuf *tticon;

	gtk_init(&argc, &argv);
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(window),"Hello GTK and C");
    

    gtk_window_set_icon_from_file(GTK_WINDOW(window), "resource:///br/com/myapp/images/logo.png", NULL);
    
    
    g_signal_connect (window, "destroy", G_CALLBACK(destroy), NULL);
    gtk_widget_show_all(window);
    gtk_main ();
	return 0;
}

Compilando o gresource e o main.c

glib-compile-resources --target=resources.c --generate-source myapp.gresource.xml
gcc main.c resources.c -o main -lm  `pkg-config gtkmm-3.0 --cflags --libs`
./main
gcc main.c resources.c -o main -lm  `pkg-config gtkmm-3.0 --cflags --libs`

 

Já estou dias tentando descobri o que esta faltando, e nada...

Alguém tem alguma ideia ??

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...