Guia de Programação em C/GTK 2 - Construindo uma Calculadora Completa

Neste guia, você aprenderá os princípios básicos de GTK, como posicionar os elementos na interface e entender a teoria de sinais. Ao longo do guia, iremos construir uma calculadora completa em C/GTK 2 com botões numéricos, entrada para texto, cálculos com valores flutuantes e negativos, múltiplos operadores e muito mais.

[ Hits: 11.561 ]

Por: Mateus Moutinho em 17/03/2020


Construindo a Interface - Parte 1: Criando a Janela



Declarando as Bibliotecas necessárias

A primeira coisa que devemos fazer é incluir as bibliotecas que iremos utilizar em nosso aplicativo, para essa Calculadora iremos usar 2, sendo elas:
  • stdio.h :: para conversão de strings em inteiros através da função "sprintf".
  • gtk/gtk.h :: e obviamente, a biblioteca GTK, que será nossa interface gráfica.

Então, abra seu editor de texto favorito e digite:

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

Linux: Guia de Programação em C / GTK 2 (Construindo uma Calculadora Completa)

Declarando os Widgets

Tudo em GTK são ponteiros tipo Widgets e sim, quando digo tudo, é absolutamente tudo! Janelas, botões, tabelas, grids, imagens, etc.

Então, para começar nossa interface, vamos declarar nosso primeiro Widget: a janela. Para isso, basta digitar:

GtkWidget

E declarar os ponteiros em seguida:

*janela;

Linux: Guia de Programação em C / GTK 2 (Construindo uma Calculadora Completa)
A fim de organização, separaremos os "Widgets" por tipos, comentando cada um dos tipos.

Iniciando a função Principal

Agora, iniciaremos a função principal passando: "int argc, char *argv[ ]" como argumentos:

int main (int argc, char *argv[ ] ){}

E dentro da função principal, iniciaremos a biblioteca GTK apontando para os argumentos da função principal

gtk_init (&argc, &argv);

Linux: Guia de Programação em C / GTK 2 (Construindo uma Calculadora Completa)

Inicializando a Janela e o laço Principal Gtk

Após "gtk_init", inicie a janela com a função "gtk_window_new" e passe como argumento a macro "GTK_WINDOW_TOPLEVEL" para a janela inicializar na parte de cima da interface, fincando desse jeito:

janela = gtk_window_new (GTK_WINDOW_TOPLEVEL);

Depois, declare a função " gtk_widget_show_all" e passe a janela como argumento para o programa mostrar a janela para o usuário. Ficando assim:

gtk_widget_show_all  (janela);

E, finalmente, inicie o loop principal da biblioteca GTK com a função:

gtk_main ();

O código completo ficará assim:
Linux: Guia de Programação em C / GTK 2 (Construindo uma Calculadora Completa)

Compilando e Executando

Salve o arquivo como "calculadora.c", acesse o terminal e vá até o diretório no qual salvou o arquivo e copile o programa usando o GCC, através do código abaixo:

gcc calculadora.c -o calculadora.out `pkg-config --cflags --libs gtk+-2.0`

Depois, execute o código via terminal através do comando:

./calculadora.out

Se tudo ocorreu bem, aparecerá uma janela em sua interface desse jeito:
Linux: Guia de Programação em C / GTK 2 (Construindo uma Calculadora Completa)
Obviamente, a janela não tem nada e nem o botão de fechar funciona. Para matar o programa, digite Ctrl+c no terminal. Na próxima página, iremos construir o designe da nossa interface e posteriormente colocar a entrada e os botões no nosso programa.

NOTA: o código feito nesta aula está anexado como calculadora1.c. Baixe e renomeie para "calculadora.c".

Compile com o seguinte comando:

gcc calculadora.c -o calculadora.out `pkg-config --cflags --libs gtk+-2.0`

Execute com:

./calculadora.out

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Construindo a Interface - Parte 1: Criando a Janela
   3. Construindo a Interface - Parte 2: Entendendo a estrutura de tabelas
   4. Construindo a Interface - Parte 3: Redigindo o código da interface
   5. Entendendo a Teoria de Sinais GTK
   6. Entendendo o Funcionamento do Programa
   7. Conectando os Botões
   8. Construindo as Funções - Finalizando o Programa
Outros artigos deste autor

DoTheWorld - Biblioteca completa para manipulação de Arquivos e Pastas em C

Leitura recomendada

Otimização de algoritmos

Algoritmo... como fazer?

Análise dos Métodos de Ordenação usados em Algoritmos Computacionais

Tutorial SDL

Linguagem C - Listas Duplamente Encadeadas

  
Comentários
[1] Comentário enviado por fabio em 17/03/2020 - 00:10h

Ótimo trabalho, parabéns!

[2] Comentário enviado por mateusmoutinho em 17/03/2020 - 01:29h

opa muito obrigado amigo , logo menos publicarei vários conteúdos sobre programação em C e C++

[3] Comentário enviado por hiperjohn em 28/03/2020 - 19:49h

Mateus, gostei muito do tutorial. Parabéns!

Gostaria de sugerir, caso fosse possível, que vc faça um tutorial sobre como utilizar o Glade para criar a interface gráfica.

Obrigado por compartilhar seu conhecimento!

[4] Comentário enviado por mateusmoutinho em 29/03/2020 - 22:00h


[3] Comentário enviado por hiperjohn em 28/03/2020 - 19:49h

Mateus, gostei muito do tutorial. Parabéns!

Gostaria de sugerir, caso fosse possível, que vc faça um tutorial sobre como utilizar o Glade para criar a interface gráfica.

Obrigado por compartilhar seu conhecimento!


Opa amigo , futuramente posso fazer sim , mas se me permite vou dar te dar uma sugestão, o glade é um ótimo facilitador , porém com ele dificilmente você entenderá a essencia de como funciona a lógica por trás do gtk , então recomendo que para começar estude GTK puro, mas sim irei fazer tutoriais usando o glade sim

[5] Comentário enviado por matheusxreis em 23/09/2021 - 00:50h

Ufa! É extremamente difícil de encontrar bom conteúdo sobre na net. Muito feliz de ter encontrado esse guia aqui.

MUITO obrigado!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts