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
Erro de segmentação «Segmentation fault (core dumped)» ao retornar obj... (4)
Não Consigo instalar o cli-visualizer no Ubuntu 24.04 (2)
compilação samba 4.22 rock linux 9.5 (1)
Posso instalar usar o grub sem ter linux instalado, para iniciar o win... (1)
Ocomon 6.0.1 - Problemas ao editar configurações estendidas (4)