Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword
Like this
29Activity
0 of .
Results for:
No results containing your search query
P. 1
ProgramaÇÃo Gtk

ProgramaÇÃo Gtk

Ratings:

5.0

(2)
|Views: 1,336|Likes:
Published by api-3838125

More info:

Published by: api-3838125 on Oct 18, 2008
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

03/18/2014

pdf

text

original

PROGRAMA\u00c7\u00c3O GTK+
GTK+ \u00e9 um toolkit multi-plataforma para a cria\u00e7\u00e3o de interfaces gr\u00e1ficas. Ele foi desenvolvido para o GIMP. Por isso foi batizado de GIMP
toolkit, com abrevia\u00e7\u00e3o GTK+.

GTK+ e Qt suplantaram outros toolkits e hoje s\u00e3o os dois conjuntos de widgets mais usados para a plataforma X11. O GTK+ \u00e9 muito
popular, sendo usado em um grande n\u00famero de aplica\u00e7\u00f5es e no ambiente de desktop GNOME (que por sua vez tamb\u00e9m \u00e9 muito
popular).

Licenciado sob a licen\u00e7a GNU LGPL, GTK+ \u00e9 software livre e integra o projeto GNU.
Este curso aborda uma introdu\u00e7\u00e3o a programa\u00e7\u00e3o GTK+ utilizando a linguagem C e como pr\u00e9 requisito, \u00e9 necess\u00e1rio ter no\u00e7\u00f5es da
linguagem C/C++. A vers\u00e3o da API GTK+ utilizada neste curso ser\u00e1 a GTK+ 2.0
Dura\u00e7\u00e3o: 1 semana. Carga Hor\u00e1ria: 4 horas/dia
Li\u00e7\u00e3o 1 - Pr\u00e9 Requisitos GTK+
Introdu\u00e7\u00e3o - O que \u00e9 o GTK+?

GTK (GIMP Toolkit) \u00e9 uma biblioteca usada para a cria\u00e7\u00e3o de interfaces gr\u00e1ficas. Este est\u00e1 licenciado sob a licen\u00e7a LGPL, e voc\u00ea
pode desenvolver softwares abertos e livres, ou at\u00e9 mesmo aplicativos comerciais n\u00e3o livre sem precisar pagar nenhuma taxa de
licenciamento ou royalties.

Por que o nome GIMP Toolkit?

Originalmente, esta biblioteca foi escrita para o desenvolvimento do software GIMP (GNU Image Manipulation Program), por\u00e9m
hoje est\u00e1 sendo usada em v\u00e1rios projetos de softwares. GNU Network Object Model Environment (GNOME) project, um ambiente
Desktop utilizado como padr\u00e3o em v\u00e1rias distribui\u00e7\u00f5es Linux, \u00e9 um destes projetos de sucesso.

O GTK foi desenvolvido em cima da biblioteca GDK e Gdk-pixbuf. GDK (GIMP Drawing KIT) basicamente \u00e9 uma abstra\u00e7\u00e3o sobre
fun\u00e7\u00f5es de mais baixo n\u00edvel para o acesso de opera\u00e7\u00f5es de janelas (ex.: biblioteca Xlib para o sistema X windows) e Gdk-pixbuf
que \u00e9 uma biblioteca de manipula\u00e7\u00e3o de imagens.

GTK \u00e9 uma biblioteca desenvolvida com id\u00e9ias de orienta\u00e7\u00e3o objeto. Apesar de ter sido completamente escrita em C, ela foi
implementada usando a id\u00e9ia de classes e fun\u00e7\u00f5es callback (ponteiro para fun\u00e7\u00f5es).
Qual linguagem ser\u00e1 utilizada?

Como j\u00e1 afirmado na ementa do curso, a linguagem utilizada ser\u00e1 o C. Existem tamb\u00e9m outras linguagens que utilizam o "core"
(n\u00facleo) da biblioteca GTK, como por exemplo C++, Guile, Perl, Python, TOM, Ada95, Objective C, Free Pascal, Eifeel, Java e
C#. Este curso n\u00e3o abordar\u00e1 as outras linguagens e sugiro a procura de sua documenta\u00e7\u00e3o pela Internet. Essas linguagens, em
sua maioria, nada mais \u00e9 do que uma "casca" de abstra\u00e7\u00e3o para que possa utilizar a sintaxe de outras linguagens. No fundo
acaba sendo o puro GTK+ e voc\u00ea encontrar\u00e1 muitas vezes refer\u00eancias para tutoriais GTK+ em C.

Este curso n\u00e3o ir\u00e1 abordar TODAS as possibilidades de constru\u00e7\u00e3o de aplica\u00e7\u00f5es em GTK. A id\u00e9ia \u00e9 passar o m\u00e1ximo suficiente
para que usando a documenta\u00e7\u00e3o existente pela Internet, conseguir criar aplica\u00e7\u00f5es com interfaces gr\u00e1ficas mais complexas e
robustas.
\u00c9 interessante que voc\u00eas reportem qualquer problema que encontrarem durante o curso. Qualquer d\u00favida ou sugest\u00e3o para
melhorar o curso ser\u00e1 bem recebido e para enviar seu recado, procure o f\u00f3rum de d\u00favidas gerais encontrada neste link.
Pr\u00e9 requisitos
Para poder compilar um programa GTK+ \u00e9 necess\u00e1rio instalar a sua biblioteca com suas depend\u00eancias.
Existem duas formas de instala\u00e7\u00e3o : por pacotes pr\u00e9 compilados e instala\u00e7\u00e3o por c\u00f3digo fonte.
Instala\u00e7\u00e3o por Pacotes pr\u00e9 Compilados
Em sistemas Debian/Ubuntu, podemos instalar utilizando a ferramenta apt-get. Abra um terminal e digite:
\u2022
sudo apt-get install libgtk2.0-0 libgtk2.0-dev
Instala\u00e7\u00e3o por C\u00f3digo Fonte
Vale ressaltar que para os "puristas", a compila\u00e7\u00e3o exige um pouco mais de trabalho, pois al\u00e9m do c\u00f3digo fonte do gtk+2.0, \u00e9
necess\u00e1rio tamb\u00e9m sempre prestar bastante aten\u00e7\u00e3o nas suas depend\u00eancias para compila\u00e7\u00e3o.
Primeiramente, vamos baixar todos os pacotes necess\u00e1rios para a compila\u00e7\u00e3o pelo site a seguir:
\u2022
GTK+ ->f t p : / / f t p . g t k . o r g / p u b / g t k / v 2 . 8 /
\u2022
Depend\u00eancias ->f t p : / / f t p . g t k . o r g / p u b / g t k / v 2 . 8 / d e p e n d e n c i e s/
Obs.: Esta \u00e9 a versao 2.8 do GTK+ que ser\u00e1 utilizada no curso.
Duas ferramentas s\u00e3o necess\u00e1rias para o processo de constru\u00e7\u00e3o/compila\u00e7\u00e3o: pkg-config e GNU make.
\u2022
pkg-config \u00e9 uma ferramenta de ajuda usada para facilitar a compila\u00e7\u00e3o de aplicativos com as suas depend\u00eancias de

bibliotecas. Isso ajuda a inser\u00e7\u00e3o de op\u00e7\u00f5es corretas do compilador pela linha de comando para que aplica\u00e7\u00f5es usem o formato de op\u00e7\u00f5es como a seguir: gcc teste.c -o teste `pkg-config --libs --cflags glib-2.0`, ao inv\u00e9s de usar valores num\u00e9ricos ou letras para que o compilador saiba onde est\u00e1 a biblioteca glib-2.0 (por exemplo).

\u2022

Voc\u00ea poderia pensar em usar a vers\u00e3o do makefile a seu gosto, por\u00e9m eles tendem a ter incompatibilidades. Logo \u00e9 recomendado a instala\u00e7\u00e3o do GNU make (caso voc\u00ea ainda n\u00e3o o tenha no computador). O nome da ferramenta \u00e9 "gmake" ao inv\u00e9s de "make".

Tr\u00eas bibliotecas que GTK+ depende, s\u00e3o mantidas pela equipe do GTK+. S\u00e3o elas: GLib, Pango e ATK.
\u2022
A biblioteca GLib prov\u00ea o n\u00facleo de funcionalidades n\u00e3o gr\u00e1ficas como tipos de dados de alto n\u00edvel, manipula\u00e7\u00e3o de
Unicode, objetos e sistema de tipagem para programas C. GLib pode ser encontrado aqui!
\u2022
Pango \u00e9 a biblioteca que fornece a possibilidade de manipula\u00e7\u00e3o de textos internacionais (v\u00e1rias linguagens).Pa n g o
pode ser encontrado aqui!!!
\u2022
ATK \u00e9 uma ferramenta para acessibilidade. Ele fornece um conjunto de intefaces gen\u00e9ricas que permite acessibilidade
tecnol\u00f3gica para necessidades especiais, como leitores de tela para interargir com a interface gr\u00e1fica. ATK pode ser
encontrado aqui!!!
\u2022

A biblioteca GNU libiconv \u00e9 necess\u00e1rio para compilar GLib caso seu sistema n\u00e3o possua a fun\u00e7\u00e3o iconv() que serve para a conversao entre as codifica\u00e7\u00f5es de caracteres. A maioria dos sistemas modernos j\u00e1 devem ter esta fun\u00e7\u00e3o como padr\u00e3o.

\u2022
A biblioteca libintl do pacote GNU gettex \u00e9 necess\u00e1rio caso seu sistema n\u00e3o tenha a funcionalidade do gettext(),
que \u00e9 a capacidade de manipula\u00e7\u00e3o de tradu\u00e7\u00f5es de banco de mensagens.
\u2022

As bibliotecas para carregar imagensJ P E G,P N G eT I F F s\u00e3o necess\u00e1rias para compilar GTK+. Voc\u00ea provavelmente j\u00e1 deve ter estas bibliotecas instaladas, caso n\u00e3o tenha, as vers\u00f5es que voc\u00ea precisa est\u00e3o no diret\u00f3rio de depend\u00eancia na p\u00e1gina dos arquivos do GTK+. (Antes de instalar estas bibliotecas pelo c\u00f3digo fonte, \u00e9 bom observar se j\u00e1 n\u00e3o existe um pacote pr\u00e9-compilado para o seu sistema).

\u2022

As bibliotecas para o sistemas X windows s\u00e3o necess\u00e1rias para compilar as bibliotecas Pango e GTK+. Voc\u00ea provavelmente j\u00e1 deve ter instalado estas bibliotecas no sistema, mas \u00e9 poss\u00edvel que voc\u00ea tenha que instalar o ambiente de desenvolvimento para estas bibliotecas que o fornecedor disponobiliza ao seu sistema operacional.

\u2022
A bibliotecaf o n t c o n f i g prov\u00ea a biblioteca Pango com um modo padr\u00e3o de localizar fontes e relacionar eles pelos seus
nomes.
\u2022
Cairo \u00e9 uma biblioteca gr\u00e1fica que suporta gr\u00e1fico vetorial e composi\u00e7\u00e3o de imagens. Pango e GTK+ utilizam bastante
cairo para seus desenhos.
Compilando e Testando GTK+

Antes de ilustrar os passos para a compila\u00e7\u00e3o, vale comentar novamente que caso voc\u00ea tenha como instalar as bibliotecas por
algum reposit\u00f3rio de softwares, seria bem mais pr\u00e1tico, f\u00e1cil e r\u00e1pido fazer por meio dele. O interessante de uma instala\u00e7\u00e3o
r\u00e1pida das bibliotecas faria com que voc\u00ea possa testar mais rapidamente os exemplos do curso e n\u00e3o perder tempo em coisas
fora do objetivo principal: programa\u00e7\u00e3o GTK+.

Caso voc\u00ea queira fazer isso manualmente ou que sua distribui\u00e7\u00e3o Linux n\u00e3o permite a instala\u00e7\u00e3o por meio de algum reposit\u00f3rio,
continue lendo as instru\u00e7\u00f5es.

Primeiramente, tenha certeza de que voc\u00ea tenha todas as depend\u00eancias instaladas: pkg-config; GNU make; bibliotecas JPEG, PNG e TIFF; FreeType; e caso necess\u00e1rio para seu sistema, libiconv e libintl. Para detalhes especiais de como compilar estes pacotes, a documenta\u00e7\u00e3o dos pacotes individuais s\u00e3o encontradas nos seus respectivos sites. Em sistemas Linux, provavelmente voc\u00ea j\u00e1 ter\u00e1 todos estes pacotes instalados, menos o pkg-config.

Depois de baixar todos os arquivos necess\u00e1rios, compile e instale as bibliotecas GTK+ da seguinte forma: GLib, Pango, ATK, e GTK+. Para cada biblioteca, siga os passos de "configure, make e make install". Se estiver instalado tudo certinho, vai funcionar tudo de forma suave e voc\u00ea, rapidamente, poder\u00e1 testar sua pr\u00f3pria aplica\u00e7\u00e3o GTK+.

Obs.(1): Lembre-se que para a instala\u00e7\u00e3o dos pacotes de c\u00f3digo fonte, geralmente seguem os passos:
\u2022
tar -zxvf nomedopacote.tar.gz
\u2022
./configure
\u2022
make
\u2022
make install

Obs.(2): Se algum dos scripts configure falhar ou o make falhar, observa atentamente a mensagem de erro; a maioria dos casos ir\u00e1 fornecer informa\u00e7\u00e3o \u00fatil do que ocorreu de errado. Geralmente a mensagem de erro e fazendo a pergunta certa ao google, ir\u00e1 aparecer v\u00e1rios sites de pessoas que j\u00e1 tiveram estes mesmos problemas. Por \u00faltimo caso, se voc\u00ea se perder no google, pode

perguntar ao monitor do curso "eu! " para te passar algumas dicas!
Compilando Aplica\u00e7\u00f5es GTK+ em Ambiente Unix-like
Para compilar as aplica\u00e7\u00f5es GTK+, voc\u00ea precisa informar ao compilador onde achar os arquivos cabe\u00e7alho e suas bibliotecas.
Isto \u00e9 feito usando o utilit\u00e1rio pkg-config.
Abra um terminal shell e digite:
\u2022
pkg-config --cflags gtk+-2.0
Voc\u00ea ir\u00e1 encontrar algo semelhante a:
\u2022
-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/glib-2.0 -I/usr/lib/glib-2.0/include
Digite tamb\u00e9m:
\u2022
pkg-config --libs gtk+-2.0
Voc\u00ea tamb\u00e9m ir\u00e1 encontrar algo semelhante a:
\u2022
-lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lfontconfig -lXext -lXrender -lXinerama -lXi
-lXrandr -lXcursor -lXfixes -lpango-1.0 -lcairo -lX11 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0
Dessa forma, voc\u00ea pode utilizar estas sa\u00eddas de textos para colocar como par\u00e2metro de configura\u00e7\u00e3o na hora de compilar algum
aplicativo GTK+, sem o medo de esquecer algum destes par\u00e2metros.
Logo, uma forma de utilizar estes textos na hora de compilar seria com o comando a seguir:
\u2022
gcc `pkg-config --cflags --libs gtk+-2.0` hello.c -o hello
Note que, o que estiver entre ` ` s\u00e3o os comandos que colocamos no come\u00e7o deste t\u00f3pico, e que ser\u00e3o automaticamente
transformados para string (onde tem a localidade das bibliotecas) e utilizadas na compila\u00e7\u00e3o.
Ou seja, em vez de utilizarmos:

Activity (29)

You've already reviewed this. Edit your review.
1 hundred reads
1 thousand reads
matheus_duarte liked this
AllanATS liked this
sansaohengler liked this
Carlos Ely liked this
Cadii Callegari liked this
Fernando Cj liked this

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->