1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Programação em C com Interface Gráfica???

Discussão em 'Programação' iniciada por EzDaddy, 1 de Março de 2012. (Respostas: 15; Visualizações: 4978)

  1. Olá pessoal!

    Eu já pesquisei esta questão no fórum, entretanto não cheguei a uma conclusão clara, em relação à minha questão.

    É possível programar algo em C (não C++) no NetBeans e arranjar uma interface gráfica para o programa? Pelo que percebi sim, mas fala tudo em Java etc... Eu quero o faze-lo em C e de preferência no NetBeans. Estou num Mac (Lion), por tanto programas como o Visual Studio etc provavelmente nem existem para Mac.
    Isto é para um projeto na escola, e já agora queria fazer algo bem fixe, que, acima de tudo, tivesse tambem uso para mim!

    A minha ideia é um inversor de links, que eventualmente também consegue decriptar links codificados. Eu sei que existem montes deles na net, entretanto, isto é para avaliação e assim ficava com um programa mais fixe (em vez de ser apenas tudo através do terminal/consola).

    Obrigado pessoal,
    Fábio
     
  2. Flinger

    Flinger Power Member

    Se quiseres fazer no netbeans, podes usar QT, já que o netbeans tem uma integração de QT para C/C++: http://netbeans.org/kb/docs/cnd/qt-applications.html

    C
    omo outras possibilidades podes usar Opengl ou mesmo algo mais básico como a curses.

    No entanto não estejas à espera que seja algo tão simples como fazer UI's .net. É um dos problemas do C.
     
  3. É assim, à partida só vou precisar pouco mais de uma caixa para inserir texto e um botão. Depois um label ou algo do género para fazer o print do link invertido...

    O que interessa é a programação feita em C no NetBeans. Se calhar não haverá problema criar a interface noutro programa. Hei de falar com o prof. Será mais simples assim, se calhar, certo? (Desculpa, mas ainda sou verde neste assunto).

    Depois o projeto feito é possível exportar o projeto como App para mac ou windows?

    Desculpa lá e obrigado :-)
     
  4. Flinger

    Flinger Power Member

    QT é uma framework para UI's, e corre tanto em Windows como Mac e Linux.
    Podes compilar o mesmo código (desde que utilizes apenas bibliotecas C standard) num Mac e no Windows.

    Como tem integração com o netbeans creio que é a melhor opção para ti, até porque Opengl e a curses provavelmente dão demasiado trabalho para fazer só o queres. Como disse, não é tão simples de programar como Windows forms para .net ou Swing para Java, já que não tens eventos. É tudo programado com sinais, e custa um bocadito mais a entender, mas nada que não se faça. Tens na mesma uma IDE para desenhar as janelas (QT creator), e se seguires os tutoriais que estão no link que postei do netbeans, deves conseguir fazer uma coisa simples sem grande problema.
     
  5. Quinas009

    Quinas009 Power Member

    Ola... Podes sempre tentar misturar C com outra linguagem. Como por exemlplo C/Python e fazes a a interface grafica em Pyhon e o restante em C.
    Podes ver aqui na documentação de python como funciona a integração das duas linguagens.
    http://docs.python.org/c-api/
     
  6. O problema é que sou um "Bloody Beginner". Sou muito verde neste assunto :-) De Python então não percebo nada... :-S
     
  7. Boas pessoal... Ok, ou sou noob a mais, ou então isto só funciona em C... :-S Eu fiz como no tutorial até ao ponto que diz para eu fechar o QT designer para voltar ao NetBeans. A partir de aí já não entendo... Aquilo está em C++ (salvo erro). Alguem que perceba disto e consiga configurar/explicar isto através do TeamViewer?
     
  8. Quinas009

    Quinas009 Power Member

    O que tens que esclarecer antes de mais é o seguinte.
    A linguagem C, como deves ja ter reparado não permite o uso de Classes e nem de orienteção a objectos. Logo por sua vez nao permite utilização de bibliotecas graficas.
    Foi na sequencia desse necessidade que o C evoluio para C++, onde este ultimo usa tudo o que em grande parte estava restrito ao C.

    A possibilidade que tens é fazer a interface grafica em C++ e o restante codigo em C. Como deves ter reparado os IDE faz alusão a C/C++ pois permitem a mistura das linguagens, pois ao fim de contas uma evoluio da outra. E como tal consegues uma integração prefeita.

    Julgo ser a unica forma de ultrapassar este problema.

    Se tiver errado em alguma coisa alguem que me corrija.

    Obrigado
     
  9. Kemosabe-TBC

    Kemosabe-TBC Power Member

    Hmm, o que é que o uso de classes e OO programming tem a ver com a utilização de bibliotecas gráficas? Claro que C permite a utilização de bibliotecas gráficas... Dúvido que existam algumas bibliotecas de jeito mas não tem nada a ver uma coisa com a outra.
     
  10. kukulcan

    kukulcan Power Member

    Bibliotecas gráficas em C: Gtk http://www.gtk.org/

    É
    funcionalmente equivalente ao Qt, se bem que talvez um pouco mais chato de programar.
     
  11. Flinger

    Flinger Power Member

    Sim, o código gerado automaticamente é C++. Vais ter de te adaptar um pouco e perceber o modo de funcionamento daquilo, embora possas usas código teu em c puro. Mas a parte de lidar com a UI é C++. Por isso te dizia que não era muito simples :D

    Podes tentar o gtk que aqui falaram, embora tenhas de configurar as bibliotecas manualmente no netbeans. Se tudo correr bem consegues fazer algo mais C, embora ainda assim não seja propriamente fácil de entender para um principiante.

    Reforço a ideia que UI's em c não são matéria para principiantes, por isso é que apenas ensinam print's e scanf's na grande maioria dos sítios :D
     
  12. mauro1855

    mauro1855 I'm cool cuz I Fold

    Não é que tenha muita experiência, mas eu é extremamente raro usar o C em conjunto com bibliotecas gráficas.
    No entanto, já usei uma em particular - a que referem na cadeira básica de programação aqui do curso, que é o Libgd2, relacionada com a biblioteca gráfica gd...

    Por acaso o site está em baixo, neste momento não dá para consultares a documentação e as várias funções que esta biblioteca tem, mas também não é nada de interactivo...
    Basicamente esta biblioteca tem várias funções para abertura de janelas, desenho de linhas, pontos e letras na janela, com várias cores, etc. É razoavelmente simples. Usei-a por exemplo num projecto que fiz de uma aplicação simples de monitorização de autoestradas. Tínhamos um ficheiro que tinha várias "coordenadas" de desenho que "imitavam" o mapa de Portugal (por exemplo), depois adicionava-se e o programa desenhava estradas/auto-estradas nesse mapa (na janela, vá)... Claro que tínhamos de fornecer as coordenadas de desenhos, etc, podíamos mudar as cores das estradas, etc etc...

    Enfim, é limitada, dá para o muito básico e é só "one-way". É do utilizador para o stdout, não permite qualquer tipo de input, segundo sei.

    Cumps
     
  13. Flinger

    Flinger Power Member

    Dentro desse género tens a curses, que já postei em cima. Mas trás o inconveniente de teres de implementar muita coisa, o que me parece um pouco puxado para uma janela com uma text box e um botão. Acho que mais vale o esforço de tentar aprender algo como QT.
     
  14. Estou a perceber o problema... Então obrigatoriamente tenho que misturar duas linguagens... Eu há tempos já dei uns toques no VisualBasic. Dá para aproveitar esse conhecimento de qualquer modo (Agora independentemente do Sistema Operativo)?

    Ou é mais simples aprender o pouco necessário de C++?

    Peço desculpa pelas perguntas, mas eu quero uma nota fixe :-)
     
  15. mauro1855

    mauro1855 I'm cool cuz I Fold

    Sinceramente acho que se calhar seria mais "simples"/melhor usar outra linguagem de programação para o efeito. C++ ou até outra.

    Cumps
     
  16. A questão é que a avaliação é sobre a programação em C :-S

    Ou estás a falar em programar apenas a Interface em C++?

    Se assim for se calhar até era o melhor... Até porque C++ me parece bastante parecido ao C... Até a nível de estrutura etc...
     

Partilhar esta Página