Enviado em 26/02/2025 - 01:18h
#include <gtk/gtk.h> //Uma novidade que vem do c.. //Os comentarios podem ser escritos com // ou /* */ /* Esta é uma função callback. Os argumentos de dados são ignorados * neste exemplo. Mais sobre callbacks abaixo. */ static void hello( GtkWidget *widget, gpointer data ) { g_print ("Hello World\n"); } static gboolean delete_event( GtkWidget *widget, GdkEvent *event, gpointer data ) { /* Se você retornar FALSE no tratador do sinal "delete_event", * o GTK emitirá o sinal "destroy". Retornar TRUE significa * que você não quer que a janela seja destruída. * Isso é útil para exibir diálogos do tipo 'tem certeza de * que deseja sair?'. */ g_print ("evento 'delete' ocorreu\n"); /* Mude TRUE para FALSE e a janela principal será destruída com um * "delete_event". */ return TRUE; } /* Outro callback */ static void destroy( GtkWidget *widget, gpointer data ) { gtk_main_quit (); } int main( int argc, char *argv[] ) { /* GtkWidget é o tipo de dado para os widgets */ GtkWidget *window; GtkWidget *button; /* Esta função é chamada em todas as aplicações GTK. Argumentos da linha * de comando são interpretados e retornados à aplicação. */ gtk_init (&argc, &argv); /* criar uma nova janela */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); /* Quando a janela recebe o sinal "delete_event" (dado pelo gerenciador * de janelas, geralmente pela opção "fechar", ou na barra de título), * nós pedimos que ela chame a função delete_event () como definido * acima. Os dado passado para a função callback é NULL e é ignorado. */ g_signal_connect (G_OBJECT (window), "delete_event", G_CALLBACK (delete_event), NULL); /* Aqui conectamos o evento "destroy" a um tratador de sinal. Esse * evento ocorre quando chamamos gtk_widget_destroy() na janela, ou * se retornamos FALSE no callback "delete_event". */ g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (destroy), NULL); /* Ajusta a largura da borda da janela. */ gtk_container_set_border_width (GTK_CONTAINER (window), 10); //Coloca um nome na janela gtk_window_set_title (GTK_WINDOW (window), "Aqui o nome da Janela"); /* Cria um novo botão com o texto "Hello World". */ button = gtk_button_new_with_label ("Hello World"); /* Quando o botão recebe o sinal "clicked", chamará a função hello() * passando NULL como argumento. hello() é definida acima. */ g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (hello), NULL); /* Isso fará com que a janela será destruída pela chamada * gtk_widget_destroy(window) quando o botão for clicado ("clicked"). * Novamente, o sinal destroy poderia vir daqui ou do gerenciador * de janelas. */ g_signal_connect_swapped (G_OBJECT (button), "clicked", G_CALLBACK (gtk_widget_destroy), G_OBJECT (window)); /* Isto empacota o botão na janela (um recipiente gtk). */ gtk_container_add (GTK_CONTAINER (window), button); /* O passo final é exibir o widget recém-criado. */ gtk_widget_show (button); /* e a janela */ gtk_widget_show (window); /* Toda aplicação GTK deve ter uma chamada gtk_main(). O controle * termina aqui e espera por um evento (como um apertamento de tecla * ou evento do mouse). */ gtk_main (); return 0; }
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Muitas dificuldades ao instalar distro Linux em Notebook Sony Vaio PCG-6131L (VPCEA24FM)
Slackpkg+ (Slackpkg Plus) está de volta!
Como dividir duas janelas igualmente e lado-a-lado na sua tela
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Minha rede tem um espaço invisível que não dá pra digitar o nome da re... (1)
Pedagogia no brasil não passa de alfabetização por m4sturbação mental ... (2)
compilação samba 4.22 rock linux 9.5 (3)
Erro de segmentação «Segmentation fault (core dumped)» ao retornar obj... (7)