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: 2.263 ]

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
Nenhum artigo encontrado.
Leitura recomendada

Algoritmo... como fazer?

Otimização de algoritmos

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

Tutorial SDL

Linguagem C - Árvores Binárias

  
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


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts