Autor Tópico: RESOLVIDO - Interface gráfica em C  (Lida 15688 vezes)

Offline rafaelmdesouza

  • Usuário Ubuntu
  • *
  • Mensagens: 8
    • Ver perfil
RESOLVIDO - Interface gráfica em C
« Online: 02 de Fevereiro de 2009, 07:47 »
Pessoal alguém conhece algum tutorial, livro ou algo do gênero que ensine a criar interface gráfica em C? (de preferência no linux)
« Última modificação: 24 de Fevereiro de 2009, 17:51 por rafaelmdesouza »

Darcamo

  • Visitante
Re: Interface gráfica em C
« Resposta #1 Online: 04 de Fevereiro de 2009, 01:02 »
Ué?
Esqueceu da GTK?
http://www.gtk.org/

Na documentação dela tem tutoriais, incluindo o clássico hello world.

A GTK também tem bindings para diversas outras linguagens caso você resolva mudar. Em geral cada um com sua documentação.

Offline rafaelmdesouza

  • Usuário Ubuntu
  • *
  • Mensagens: 8
    • Ver perfil
Re: Interface gráfica em C
« Resposta #2 Online: 04 de Fevereiro de 2009, 11:52 »
Já baixei a GTK+ mas não consegui instalá-la. Nem no Windows nem no Linux... Como eu faço isso?

Offline Kamei Hyoga

  • Usuário Ubuntu
  • *
  • Mensagens: 1.095
  • Ubuntu 11.04
    • Ver perfil
Re: Interface gráfica em C
« Resposta #3 Online: 04 de Fevereiro de 2009, 13:42 »
Acho que sua resposta é o Glade. Com ele você cria sua interface e etc

Darcamo

  • Visitante
Re: Interface gráfica em C
« Resposta #4 Online: 04 de Fevereiro de 2009, 22:30 »
Instale a gtk pelo gerenciador de pacotes do ubuntu.
Acredito que basta instalar o pacote libgtk2.0-dev e suas dependências.

Para o glade, instale o pacote glade-3.

Depois disso é só seguir a documentação no site da GTK ou algum tutorial que encontre na internet.
Ex: http://zetcode.com/tutorials/gtktutorial/

Offline rafaelmdesouza

  • Usuário Ubuntu
  • *
  • Mensagens: 8
    • Ver perfil
Re: Interface gráfica em C
« Resposta #5 Online: 05 de Fevereiro de 2009, 01:04 »
Todos os pacotes da GTK que tem no Gerenciador de Pacotes Synaptic já estão instalados... E esse chamado libgtk2.0-dev não tem. Tem o libgtk2.0-0, libgtk2.0-bin, libgtk2.0-cil, libgtk2.0-common. E o pacote glade-3 não tem também. Meu Linux é o Ubuntu 7.10

Eu tentei compilar o seguinte código que achei d exemplo no site da biblioteca:

#include <gtk/gtk.h>

int main( int argc, char *argv[])
{
  GtkWidget *window;

  gtk_init(&argc, &argv);

  window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  gtk_widget_show(window);

  gtk_main();

  return 0;
}

mas ele diz que o gtk/gtk.h é um arquivo ou diretório inexistente.

Darcamo

  • Visitante
Re: Interface gráfica em C
« Resposta #6 Online: 06 de Fevereiro de 2009, 21:52 »
Ubuntu 7.10 é um pouco antigo e realmente não deve ter o glade-3, embora tenha possivelmente um glade mais antigo.

Mas a gtk com certeza deve ter. Procura por gtkALGUMACOISA-dev.
Em último caso você pode pegar o fonte da GTK no site e tentar compilar, mas certamente terão dependências e pepinos para resolver.

Não seria possível atualizar sua versão do ubuntu?

Quanto a compilação, como você esta usando bibliotecas externas ao C puro, então não é simplesmente
Código: [Selecionar]
gcc arquivo.c -o saidaVocê tem que informar para o compilador onde os headers da GTK estão, além de informar ao linkador que ele deve linkar seu programa com a GTK.
Isso não é coisa da GTK. Vale para qualquer biblioteca que você use.

Por exemplo, suponha que você use algumas bibliotecas chamadas BILIOTECA_1, BILIOTECA_2, etc.. O comando de compilação seria então algo como
Código: [Selecionar]
gcc arquivo.c -o saida -I/PATH_DA_BILIOTECA_1 -I/PATH_DA_BILIOTECA_2 ... -lBILIOTECA_1 -lBIBLIOTECA_2 ...O "-I" indica justamente a pasta onde on .h da biblioteca está, enquanto que o "-l" (L minúsculo) informa ao linkador que ele deve linkar com a biblioteca.

E como saber quais pastas incluir para a GTK e com que linkar o seu programa?
Basta usar o pkg-config.
Com o comando
Código: [Selecionar]
pkg-config gtk+-2.0 --cflagsvocê obterá os paths (os "-I"s), enquanto que com o comando
Código: [Selecionar]
pkg-config gtk+-2.0 --libsvocê obterá as libs (os "-l"s).

Também pode combinar as duas coisas para se ter mais praticidade
Código: [Selecionar]
pkg-config gtk+-2.0 --cflags --libsRode esse comando em um terminal acrescente ao comando de compilação obtendo
Código: [Selecionar]
gcc arquivo.c -o saida RESULTADO_DO_COMANDO_(pkg-config gtk+-2.0 --cflags --libs)
Só que com isso o comando de compilação fica muito grande. Uma maneira ainda mais prática é simplesmente usar o comando abaixo para compilar
Código: [Selecionar]
gcc arquivo.c -o saida `pkg-config gtk+-2.0 --cflags --libs`
Os sinais de crase fazem a mágica. O linux "rodará o comando dentro das crases em um terminal" e substituirá tudo pelo resultado, o que é estremamente conveniente.
Com o comando acima fui capaz de compilar o exemplo que você mostrou, após ter instalado o pacote libgtk2.0-dev, claro.