Entrar    Registrar

GTK

Programação C em geral

Moderadores: guest2003, 51

  • Autor
    Mensagem

GTK

Mensagempor Aquino » 03 Set 2014 21:23

No rápido estudo que estou fazendo sobre o GTK acabei por criar uma paixão por esse toolkit, a API foi desenvolvida com uma interface bem simples que é intuitiva e não cria mecanismos malucos como no caso do Qt e MFC.
Não analisei o código de implementação desse biblioteca, nem é essa minha intenção saber da sua eficiência em termos computacionais,porém para aqueles que gostam de uma boa e velha programação em Czão é muito fácil sentir-se em casa.
Um exemplo bem babaca de um trabalho que estou codificando para a Universidade:

cpp code
#include <gtk/gtk.h>

const char *rotulos[5][5]={
[0]={"rand","raiz" ,"exp" ,"mod","sen"},
[1]={"7" ,"8" ,"9" ,"+" ,"cos"},
[2]={"4" ,"5" ,"6" ,"-" ,"tan"},
[3]={"1" ,"2" ,"3" ,"/" ,"Enter"},
[4]={"0" ,"," ,"abs" ,"*" ,"ESC"},
};

void criaTeclado(GtkWidget *fixed){
unsigned char x,y;

for(x=0;x<5;x++)
for(y=0;y<5;y++){
GtkWidget *botao;

botao = gtk_button_new_with_label(rotulos[y][x]);
gtk_widget_set_size_request(botao,50,50);
gtk_fixed_put(GTK_FIXED(fixed), botao, 10 + (60*x), 50 + (60*y));
}
}

int main(int argc,char *argv[]){
GtkWindow *janela;
GtkWidget *fixed;
GtkWidget *vbox;
GtkWidget *display;


gtk_init(&argc,&argv); // Inicialização da biblioteca

janela = G_OBJECT(gtk_window_new(GTK_WINDOW_TOPLEVEL)); // cria uma nova janela
gtk_window_set_position(GTK_WINDOW(janela),GTK_WIN_POS_CENTER);
gtk_window_set_title(GTK_WINDOW(janela),"Trabalho M1"); // altera o titulo da janela
gtk_container_set_border_width(GTK_CONTAINER(janela),10);
gtk_window_set_default_size(GTK_WINDOW(janela),350, 400);

vbox = gtk_vbox_new(FALSE, 2);
fixed = gtk_fixed_new();
gtk_container_add(GTK_CONTAINER(janela), vbox);
gtk_box_pack_start(GTK_BOX(vbox), fixed, TRUE, TRUE, 1);

criaTeclado(fixed);

display = gtk_entry_new();
gtk_widget_set_usize(display,300,20);
gtk_fixed_put(GTK_FIXED(fixed),display,10,10);

g_signal_connect_swapped(G_OBJECT(janela), "destroy",G_CALLBACK(gtk_main_quit), NULL); // conecta o sinal "destroy" ao gtk_main_quit

gtk_widget_show_all(G_OBJECT(janela));
gtk_main(); // Entra no loop de mensagens da biblioteca
return 0;
}


Que por enquanto, gera isso:
Imagem
"...People who are really serious about software should make their own hardware..." Alan Kay
Avatar do usuário
Aquino
Dword
 
Mensagens: 1838
Registrado em: 12 Out 2006 22:24

Re: GTK

Mensagempor Rodrigo_P_A » 03 Set 2014 23:46

Lindo..... Eu prefiro sempre o Czao.... Mas com o qt dá pra programar assim tbm. A vantagem do qt é que ele parece ser muito mais completo. Ainda num brinquei com o GTK. A licença dele GPL é muito ruim
---
Avatar do usuário
Rodrigo_P_A
Dword
 
Mensagens: 1974
Registrado em: 12 Out 2006 18:27
Localização: Osasco - S.P - Brasil

Re: GTK

Mensagempor Rodrigo_P_A » 04 Set 2014 07:15

Me enganei ele também pode ser usado em aplicações comerciais com o LGPL
---
Avatar do usuário
Rodrigo_P_A
Dword
 
Mensagens: 1974
Registrado em: 12 Out 2006 18:27
Localização: Osasco - S.P - Brasil

Re: GTK

Mensagempor tcpipchip » 07 Set 2014 17:21

Legal! Interessante!
------------------------------------------
http://www.youtube.com/tcpipchip
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 5842
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Voltar para Visual C++/C/C++/C#

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante