Você está aqui: GTK+ ::: Dicas & Truques ::: GtkButton

Como adicionar um GtkButton à janela principal e exibir uma mensagem quando este for clicado

Quantidade de visualizações: 5839 vezes
Esta dica mostra como adicionar um GtkButton à janela principal da aplicação e exibir uma mensagem GtkMessageDialog quando este for clicado. Note também o uso do gerenciador de layout GtkFixed para posicionar o botão em seu devido lugar. Embora simples, este exemplo pode ser a base para o desenvolvimento de várias aplicações úteis usando GTK+ e C. Veja o código e bom divertimento:

#include <gtk/gtk.h>

// função que será chamada quando o botão for clicado
void exibir_mensagem(GtkButton *button, GtkWindow *parent){
  GtkWidget *dialog;
  dialog = gtk_message_dialog_new(parent, GTK_DIALOG_MODAL,
    GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "GTK+ e C são bons demais!");
  
  gtk_window_set_title(GTK_WINDOW(dialog), "Mensagem");
  gtk_dialog_run(GTK_DIALOG(dialog));
  gtk_widget_destroy(dialog);
}

int main(int argc, char *argv[]){
  // inicializamos o GTK+ e as bibliotecas de suporte
  gtk_init(&argc, &argv);

  // vamos criar uma nova janela e definir seu título
  GtkWidget *janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  gtk_window_set_title(GTK_WINDOW(janela), "Estudos GTK+ com C");

  // vamos definir a largura e altura da janela
  gtk_window_set_default_size(GTK_WINDOW(janela), 400, 200);

  // precisamos de uma gerenciador de layout. vamos usar
  // GtkFixed
  GtkWidget *layout = gtk_fixed_new();
  
  // vamos criar um botão GtkButton
  GtkWidget *btn = gtk_button_new_with_label("Clique Aqui");
  // vamos definir a largura e altura do botão
  gtk_widget_set_size_request(btn, 120, 30);

  // quando o botão for clicado nós vamos chamar a função
  // exibir_mensagem
  g_signal_connect(G_OBJECT(btn), "clicked",
    G_CALLBACK(exibir_mensagem), (gpointer)janela);

  // adicionamos o botão ao gerenciador de layout
  gtk_fixed_put(GTK_FIXED(layout), btn, 10, 10);

  // adicionamos o GtkFixed à janela principal
  gtk_container_add(GTK_CONTAINER(janela), layout);
  
  // exibimos a janela e seus componentes
  gtk_widget_show_all(janela);

  // código que destrói a janela principal
  g_signal_connect_swapped(G_OBJECT(janela), "destroy",
    G_CALLBACK(gtk_main_quit), NULL);

  // entramos no loop principal do GTK+
  gtk_main();

  // a aplicação GTK+ foi fechada, vamos sair
  return 0;
}


Link para compartilhar na Internet ou com seus amigos:

Veja mais Dicas e truques de GTK+

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 38 usuários muito felizes estudando em nosso site.