Ola, estou aprendendo um pouco mais sobre o GTK4, ja me deparei com outra ferramenta semelhante, o QT, porém achei mais interessante o GTK.
Após um longo aprendizado para entender o que era o meson, ninja, variaveis de ambiente e tudo mais, consegui instalar o GTK4. Após compilar e ver alguns exemplos do GTK4. Achei muito bom. Fiquei facinado com as possibilidades.
Ao buscar a documentação me deparei com alguns exemplos que tem um arquivo .ui, pelo que entendi esse arquivo criar a parte da interface grafica.
O restante é com relação back-end do programa :
#include <gtk/gtk.h>
static void
print_hello (GtkWidget *widget,
gpointer data)
{
g_print ("Hello World\n");
}
int
main (int argc,
char *argv[])
{
GtkBuilder *builder;
GObject *window;
GObject *button;
GError *error = NULL;
gtk_init (&argc, &argv);
/* Construct a GtkBuilder instance and load our UI description */
builder = gtk_builder_new ();
if (gtk_builder_add_from_file (builder, **"builder.ui",** &error) == 0)
{
g_printerr ("Error loading file: %s\n", error->message);
g_clear_error (&error);
return 1;
}
/* Connect signal handlers to the constructed widgets. */
window = gtk_builder_get_object (builder, "window");
g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
button = gtk_builder_get_object (builder, "button1");
g_signal_connect (button, "clicked", G_CALLBACK (print_hello), NULL);
button = gtk_builder_get_object (builder, "button2");
g_signal_connect (button, "clicked", G_CALLBACK (print_hello), NULL);
button = gtk_builder_get_object (builder, "quit");
g_signal_connect (button, "clicked", G_CALLBACK (gtk_main_quit), NULL);
gtk_main ();
return 0;
}
Até ai ok, eu colo esse exemplo e compilo, tudo ok.
Ai quero fazer um exemplo meu, e me deparo com mais um desafio. Como fazer o arquivo correspondente a interface.
Não consegui achar documentação que me explicasse como isso funciona. Achei o Glade mas não funciona para o GTK4, mesmo se eu importar ele modifica tudo e ja da erro na hora de abrir o programa. Tentei fazer a interface no glade com a versão mais recente, porem não existe compatibilidade.
Em algumas buscar achei frases como, “O GTK4 DESENCORAJA O USO DO GNOME GLADE, POIS POSSUI SEU PROPRIOS MEIOS DE CONSTRUÇÃO ATRAVÉS DO GTKBUILDER”.
O que seria o GTK BUILDER;
Sei que existe funções do gtk como gtk_builder_add_from_file (builder, “builder.ui”, &error), que faz a chamada do arquivo de interface .ui.
Pensei, legal deve ter um programa para a versão do GTK4, se existe nãoa chei.
Diante de tudo isso a pergunta é:
Alguem trabalhou ou trabalha com GTK e tem alguma dica de como construir essas interfaces e se existe alguma documentação para que eu possa fazer isso.
OBSERVAÇÃO: Estou buscando informações deste site https://developer.gnome.org/gtk4/4.0/, esta tudo em ingles, o que dificulta um pouco a leitura no meu caso. Sou estudante e não tenho muita experiencia com o assunto. Se falei alguma besteira, favor desconsiderar.
Aguardo alguem que possa me passar alguma dica ai. Agradeço.