Neste artigo vou mostrar como se cria uma calculadora com o Glade e o GTK+. Para quem não sabe, Glade é um RAD (Rapid Application Development) que nos permite criar interfaces em GTK+ de forma bem simples, a base de cliques.
Estamos prontos então para fazer o código-fonte do nosso programa.
Abra o arquivo callbacks.c com seu editor preferido (eu uso o Emacs) e adicione as seguintes linhas:
void on_btDiv_clicked (GtkButton *button, gpointer user_data)
{
GtkWidget
*calc, // A janela
*prim, // O campo "enPrimeiro"
*seg; // e o campo "enSegundo"
int n1, n2; // n1 e n2: primeiro e segundo numero
char n3[30]; // resultado em formato string
calc = gtk_widget_get_toplevel(GTK_WIDGET(button));
prim = lookup_widget(calc, "enPrimeiro");
seg = lookup_widget(calc, "enSegundo");
n1 = atoi(gtk_entry_get_text(GTK_ENTRY(prim)));
n2 = atoi(gtk_entry_get_text(GTK_ENTRY(seg)));
if (n2 == 0) return; // Não dividir por 0...
sprintf(n3, "%d", n1 / n2); /* Essa é a única parte que vai *
* mudar nas outras funções */
gtk_entry_set_text(GTK_ENTRY(prim), n3);
gtk_entry_set_text(GTK_ENTRY(seg), "");
}
[2] Comentário enviado por padovani em 17/03/2005 - 17:31h
Parabéns pelo artigo! Eu estava mesmo procurando um RAD para começar a programar em GTK+ e gostei muito do Glade. Aproveitando a oportunidade, gostaria de saber se há como trabalhar com shell-script no Glade, ou seja, chamar algum script a partir do programa.
[4] Comentário enviado por ramonklown em 19/03/2005 - 15:03h
é só você chamar o comando do shell-script, não dá para chamar um programa em shel inteiro pois um programa shell não utiliza interface gráfica. Mas pode fazer links para executar comando por comando.
[5] Comentário enviado por lilolouco em 26/10/2005 - 10:31h
eu tentei compilar o programa porem quando eu digitei os comandos deu a seguinte mensagem
"usr/bin/ld: cannot find -lfontconfig"
e nao compilou, porem como o glade gera um autoexec eu rodei e quando o glade gerou o makefile na pasta src eu deletei as linhas do tal -fontconfig e funcionou...soh nao sei se isso eh seguro fazer...se nao for o que devo fazer?
[6] Comentário enviado por assismvla em 26/11/2005 - 18:18h
Como eu faria por exemplo : tenho uma primeira tela por exemplo de login, com dois campos login, senha e um botão "enviar".Onde(em qual arquivo callback.c , main.c ??) ficaria o codigo da conexão com o banco e depois como faia para chamar uma segunda tela(uma segunta interface) com o programa em sí !!
[7] Comentário enviado por ustrucx em 28/11/2005 - 23:28h
Achei bem esclarecedor o artigo, a parte do codigo alí em gtk pra mim é um mistério :p mas o artigo é sobre glade e me esclareceu bastante a parte de criar os botoes e os atributos tal.
Estou agora na captura de como escrever em python no glade ;)
[]'s
gcc $(pkg-config --libs --cflags gtk+-2.0) stage1.c
stage1.c:2:25: glade/glade.h: No such file or directory
stage1.c: In function `main':
stage1.c:7: error: `GladeXML' undeclared (first use in this function)
stage1.c:7: error: (Each undeclared identifier is reported only once
stage1.c:7: error: for each function it appears in.)
stage1.c:7: error: `ui' undeclared (first use in this function)
[10] Comentário enviado por bozux em 06/03/2007 - 19:25h
Cara,
muito bom o artigo, explicando passo-a-passo e bem didático. Deu pra ter uma noção legal de como a coisa funciona... tá certo q é bem simples mas atendeu o objetivo!
[12] Comentário enviado por shirglei em 04/10/2007 - 15:52h
Amo o linux, uso ele, sempre.... mas sinceramente programar em linux é desanimador se comparado a outras IDEs como O borland C+= Builder, Delphi ou ate mesmo o Visual Studio da MICOsoft, é so por isso que ainda tenho o Ruindows instalando na minha maqui (so uso ele pra programar e nada mais )
[13] Comentário enviado por r.denilson em 13/12/2007 - 23:27h
Olá galera, achei fantástico a idéia desta calculadora só que até agora não estou conseguindo compilar. Estou recebendo o seguinte erro:
Package gtk+-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk+-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtk+-2.0' found
Eu utilizo o Ubuntu. Instalei alguns pacotes do GTK, mas não consigo achar o bendito "gtk +-2.0".
[14] Comentário enviado por wswillianss em 19/12/2008 - 03:52h
Parabéns, gostei muito desse artigo. Estava procurando justamente isso aqui, na net e não achei, mas quando resolvi entrar no bom e velho Viva o Linux conseguir através do seu artigo. Excelente!!! Parabéns mesmo. Olha eu gostaria de saber como faço para, utilizar uma janela secundária neste artigo? É possível? Abração!
[15] Comentário enviado por Rob_Som em 27/04/2009 - 12:34h
Parabéns Pelo Artigo!
Me cadastrei no Viva o Linux para te dar o parabéns e para ajudar o próximo igual você fez.
Se não fosse o seu ótimo tutorial eu não iria conseguir finalizar o meu trabalho.
Fiz em C também, foi locura, mas eu fiz.
[16] Comentário enviado por xinobio em 26/06/2009 - 01:29h
cara, gostei mto desse tuto! n conhecia o glade, ele eh mto podereso mesmo!
mas, acho q fiz algo errado, quando digito os dois numeros e alguma operação da erro e sai ! Mas deve ter sido bronca minha mesmo...
obrigado mesmo ai velho!
[19] Comentário enviado por wladimir58 em 20/06/2016 - 15:45h
Infelizmente, pelo menos para mim, o Glade dá problemas de incompatibilidade; já tentei usar vários exemplos de programas com ele e python, mas simplesmente não funciona.
A versão que eu tinha do glade era 3.x e geralmente a maioria dos escipts pedem a versão 2.0
Desisti do Glade e agora to usando o QT Interface Designer, é muito melhor.