Bem vindo ao LifeGames Demo
Cadastre-se agora para ter acesso a todos os nossos recursos. Uma vez cadastrado e logado, você será capaz de criar tópicos, postar respostas a tópicos já existentes, a reputação de seus companheiros, começar seu próprio mensageiro privado, atualizações de status post, gerir o seu perfil e muito mais. Esta mensagem será removida assim que tiver logado.
Entrar Cadastre-se


Você não está conectado. Conecte-se ou registre-se

gtk em c/c++ - 1º parte

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

1 gtk em c/c++ - 1º parte em Ter Maio 21, 2013 4:54 pm

Moedas Moedas : 201
Mensagens Mensagens : 92
Humor Humor : *-*
Reputação Reputação : 5
Quebra de regras:
0 / 1000 / 100

avatar

hacker fts315

Moderador Informática

Moderador Informática

bom galera nesse tutorial vou ensinar a programar interface grafica com a linguagem c/c++ e gtk, nao vou abordar a instalaçao dele mesmo pq existe varios tutorias na net ensinando, o gtk e um conjunto de bibliotecas para desenvolvimento grafico ele existe para a maioria das linguagem de programaçao (c/c++, pascal, python, java, php, perl entre outras), vamos criar um source basica

Código:
#include <stdio.h>

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

usaremos a biblioteca gtk/gtk.h

Código:
#include <stdio.h>
#include <gtk/gtk.h>

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

para agente compilar temos q linkar varios libs para agilizar existe o pkg-config

gcc fts.c -o hack `pkg-config --cflags --libs "gtk+-2.0"`

q seria equivalente a isso

gcc fts.c -o hack -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lcairo -lgio-2.0 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0

entre os dois prefiro usar a sintaxe do pkg '-' , na source agente vai ter q iniciar o gtk e criar um loop para ele, no caso para iniciar se usa a funçao gtk_init passamos como argumento o endereço de memoria de argc e argv, depois usamos a funçao gtk_main

Código:
#include <stdio.h>
#include <gtk/gtk.h>

int main(int argc, char **argv)
{
   gtk_init(&argc,&argv);
   gtk_main();
}

so isso nao e suficiente para criar uma janela, para agente criar uma janela usamos a funçao gtk_window_new passamos como argumento GTK_WINDOW_TOPLEVEL, tambem atribuimos ela a um ponteiro do tipo GtkWidget

Código:
#include <stdio.h>
#include <gtk/gtk.h>

int main(int argc, char **argv)
{
   GtkWidget *janela;
   gtk_init(&argc,&argv);
   janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
   gtk_main();
}

a janela ta pronta mais ta invisivel para chamar a janela usamos a funçao gtk_widget_show e passamos como argumento o ponteiro da janela

Código:
#include <stdio.h>
#include <gtk/gtk.h>

int main(int argc, char **argv)
{
   GtkWidget *janela;
   gtk_init(&argc,&argv);
   janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
   gtk_widget_show(janela);
   gtk_main();
}

[Você precisa estar registrado e conectado para ver esta imagem.]

para mudar o titulo da janela usamos a funçao gtk_window_set_title e passamos como argumento a janela e o titulo

Código:
#include <stdio.h>
#include <gtk/gtk.h>

int main(int argc, char **argv)
{
   GtkWidget *janela;
   gtk_init(&argc,&argv);
   janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
   gtk_window_set_title(GTK_WINDOW(janela),"by hacker fts315");
   gtk_widget_show(janela);
   gtk_main();
}

[Você precisa estar registrado e conectado para ver esta imagem.]

para agente centralizar a janela usamos a funçao gtk_window_set_position passamos como argumento a janela e a constante GTK_WIN_POS_CENTER

Código:
#include <stdio.h>
#include <gtk/gtk.h>

int main(int argc, char **argv)
{
   GtkWidget *janela;
   gtk_init(&argc,&argv);
   janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
   gtk_window_set_position(GTK_WINDOW(janela),GTK_WIN_POS_CENTER);
   gtk_widget_show(janela);
   gtk_main();
}

para agente redimensionar o tamanho padrao da janela usamos a funçao gtk_window_set_default_size passamos como argumento a janela e largura e altura

Código:
#include <stdio.h>
#include <gtk/gtk.h>

int main(int argc, char **argv)
{
   GtkWidget *janela;
   gtk_init(&argc,&argv);
   janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
   gtk_window_set_default_size(GTK_WINDOW(janela),600,500);
   gtk_widget_show(janela);
   gtk_main();
}

[Você precisa estar registrado e conectado para ver esta imagem.]

para agente escrever no terminal usamos g_print ao inves de printf

Código:
#include <stdio.h>
#include <gtk/gtk.h>

int main(int argc, char **argv)
{
   GtkWidget *janela;
   gtk_init(&argc,&argv);
   janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
   g_print("by hacker fts315");
   gtk_widget_show(janela);
   gtk_main();
}

[Você precisa estar registrado e conectado para ver esta imagem.]

bom galera esse tutorial continua ^^

by hacker fts315



[center][Você precisa estar registrado e conectado para ver esta imagem.]


Contato:
Facebook: [Você precisa estar registrado e conectado para ver este link.]
Ask: [Você precisa estar registrado e conectado para ver este link.]
Ver perfil do usuário http://www.facebook.com/hacker.fts315

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum