• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

pedrotuga

Qual a ferramenta que mais facilita a construcao de um GUI?

25 mensagens neste tópico

Epa... lá está uma coisa que nunca usei mas virá o tempo.

Experimentei fazer um gui com o netbeans... é estupidamente fácil, se bem que não me oriento com programacao DESorietada a objectos. Nunca experimentei o borland ou o da microsoft (o que vem com o visual studio)

Qual é que voces acham a melhor opcao para principiantes que querem por as suas brincadeias num GUIzito?

"botem" aí respostas... é impressao minha ou isto tem andado morninho?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Desculpa a ignorância mas o que é um GUI ? :\

EDIT: Já sei o que é  :biggrin: GUI = Graphical User Interface

Vais fazer uma coisa simples certo ? Quando houver resultados posta aí  :cheesygrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Depende o que queres fazer, mas uma das melhores ferramentas é :

Papel e tesoura  :shocking: ... Não, não é nenhuma aplicação que só correr em Dos ou Mac ou Win Xpto, é mesmo papel e tesoura. Passo a explicar.

Se queres simplesmente fazer um ecrã que terá uns botões e umas janelas de texto para escrever e aparecer, até podes usar algo mais sofisticado, como o Paintbrush ou o Gimp.

No entanto, se quiseres fazer várias janelas, que podem passar de umas para as outras, com vários aspectos/tamanhos e queres ver como ficam as janelas sem ter trabalho de fazer o GUI, e onde podes querer mudar os botões de sitio etc, sugiro que se façam umas pequenas maquetes em papel, onde podes facilmente mudar o aspecto shiftando os bocados de um sitio para o outro.

É claro que isto que estou a explicar é "qual a melhor forma de desenhar um GUI". Com isto poderás ter uma maquete sem teres que estar a perceber como funciona o NetBeans, ou como incluir mais um resource de Web no Visual Studio.

Para depois fazeres mesmo o teu GUI (gerar o código necessário), deves usar a ferramenta mais apropriada à linguagem que queres usar. Se for algo para .NET, não vais usar o Netbeans nem Eclipse (embora consigas com mais ou menos trabalho), e se for para java, a não ser que seja para J++, ou .NETJ ou sei lá o que possam chamar, não usas o Visual Studio.

Portanto, a primeira pergunta é :

Em que linguagem queres desenhar uma GUI ?

E continua-se dai ...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Depende o que queres fazer, mas uma das melhores ferramentas é :

Papel e tesoura  :shocking: ... Não, não é nenhuma aplicação que só correr em Dos ou Mac ou Win Xpto, é mesmo papel e tesoura. Passo a explicar.

Se queres simplesmente fazer um ecrã que terá uns botões e umas janelas de texto para escrever e aparecer, até podes usar algo mais sofisticado, como o Paintbrush ou o Gimp.

No entanto, se quiseres fazer várias janelas, que podem passar de umas para as outras, com vários aspectos/tamanhos e queres ver como ficam as janelas sem ter trabalho de fazer o GUI, e onde podes querer mudar os botões de sitio etc, sugiro que se façam umas pequenas maquetes em papel, onde podes facilmente mudar o aspecto shiftando os bocados de um sitio para o outro.

É claro que isto que estou a explicar é "qual a melhor forma de desenhar um GUI". Com isto poderás ter uma maquete sem teres que estar a perceber como funciona o NetBeans, ou como incluir mais um resource de Web no Visual Studio.

Para depois fazeres mesmo o teu GUI (gerar o código necessário), deves usar a ferramenta mais apropriada à linguagem que queres usar. Se for algo para .NET, não vais usar o Netbeans nem Eclipse (embora consigas com mais ou menos trabalho), e se for para java, a não ser que seja para J++, ou .NETJ ou sei lá o que possam chamar, não usas o Visual Studio.

Portanto, a primeira pergunta é :

Em que linguagem queres desenhar uma GUI ?

E continua-se dai ...

Carago.. não percebi nada.

Essa do papel e tesoura... supostamente os editores graficos de gui servem para fazer o mesmo que o papel e a tesoura mas sem papel e tesouras... só precisas do teu pc.

Depois pareceu-me que és demasiado agarrado as tecnologias microsoft.

o que queres dizer com "algo para .NET".

Aliás.... acho k isso do .NET anda a confundir o pessoal todo. Alguem me explicao o que é o .NET

é o nome do IDE mais recente da microsoft, ou é o nome da microsoft, ou é só uma ferramente que vem com o ide da microsoft? Acho que o pessoal se confunde todo.. cada pessoa me diz uma coisa diferente

Agora... claro que a pergunta nao pode ser... em que linguagem desenhar o GUI. A pergunta é exactamente a oposta a essa.

Qual a melhor forma? incluindo isso a libguagem e a aplicacao que gerará o código.

O objectivo desta thread é que o ppl partilhe as experiencias e que diga o que gosta mais, pesando a linguagem preferida com a poupança de esforço proporcionada pela ferramenta de geração de GUI.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Carago.. não percebi nada.

Hehe, as vezes tenho esse efeito :thumbsup:

Por acaso até nem estou "agarrado" às tecnologias Microsoft, mas estou mais virado para Java. Estive durante MUITOS anos, "agarrado" sim, e usei INTENSIVAMENTE o resource editor do Microsoft Visual Studio 6.0.

Em relação a criar um GUI numa ferramenta, é claro que precisas de saber em que linguagem queres fazer esse GUI, porque, por exemplo, criar um GUI no visual studio, gera-te código para Visual C++ (supondo que o projecto é de C++) para poderes interagir com esse GUI. Por esta razão é que eu disse que não existe, pelo menos não conheço, nenhuma ferramenta no mercado que onde tu crias um GUI e depois dizes que queres usar isso num projecto Java ou C++.

.NET é uma "plataforma" que te permite teres programas em várias linguagens, como por exemplo C#, VB.NET etc, todos a falarem entre si de uma forma fácil. Permitindo-te assim criares um projecto MAIOR que seja um aglomerado de outros projectos feitos em linguagens diferentes. No entanto permitindo que trabalhes nesses diferentes projectos dentro do mesmo IDE (Integrated Development Environment - Ambiente Integrado de Desenvolvimento). Ou seja, abres o Visual Studio, e podes abrir e trabalhar com ficheiro VB.NET ou C# sem mudar de aplicação.

Agora... claro que a pergunta nao pode ser... em que linguagem desenhar o GUI. A pergunta é exactamente a oposta a essa.

Qual a melhor forma? incluindo isso a libguagem e a aplicacao que gerará o código.

O objectivo desta thread é que o ppl partilhe as experiencias e que diga o que gosta mais, pesando a linguagem preferida com a poupança de esforço proporcionada pela ferramenta de geração de GUI.

Não existe uma melhor forma de desenhar uma GUI, sem saber em que linguagem vais programar.

Ninguém se chega ao pé de ti e diz ... preciso de um GUI, eles chegam-se ao pé de ti e dizem, preciso de uma aplicação que faca ISTO, AQUILO e ACOLOUTRO. Tu depois tens de ver o que vais fazer, com que linguagem (porque algumas linguagens são melhores que outras para resolver certos problemas) e só ai é que podes pensar em desenhar o GUI numa aplicação que te vai gerar o código para essa mesma GUI.

As aplicações de desenho de GUIs costumam estar integradas nos IDEs, ou então existem plugins para te permitir ter a vida facilitada para os desenhares. O Eclipse por exemplo não tem nenhum editor de GUI por base, mas existem plugins para isso.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pá mas alguem aki já criou 1 GUI ? :|

Já criei guis no matlab e já experimentei em java com o netbeans e funcionou, mas nunca fiz uma aplicacao digna desse nome com o gui.

Destineo,

chegam ao pé de mim e dizem: faz uma aplicacao que faca isto e que o faca em modo gráfico. Como só programar o gui dá muito trabalho acho k a facilidade com que este se constroi pode entrar como factor de decisao sem problema nenhum. De resto ninguem programa apenas uma linguagem.

Tipo... o gui pode ser facilmente criado com esta ferramenta... mas depois o código é mais facil numa linguagem que ela nao suporta...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pah posta aí ScreenShots do teu GUI :| agora fikei interessado :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pah posta aí ScreenShots do teu GUI :| agora fikei interessado :D

Epa... o guide do matlab dá para criares guis em segundos... a porra é que só correm no matlab, nao correm em sistema operativo... topas?

Já ouvi falar em compiladores de matlab... de qq modo o matlab não serve para tudo.

anyway... aqui vai o screenshot para o mr céptico. :thumbsup:

guimatlab2od.th.png

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Há aqui qualquer coisa que me está a escapar, ou então algo que não estou a perceber ...

GUI = Graphical User Interface, ou seja, uma interface grafica para o utilizador poder interagir com uma aplicação  ... Um GUI é "desenhado" numa aplicação X para ser utilizado pela linguagem Y. Não EXISTE nenhuma ferramenta que desenha GUIs pura e simplesmente. O que tu fizeste no Matlab foi desenhar um GUI para ser usado no MATLAB usando a linguagem do MATLAB.

Epa... o guide do matlab dá para criares guis em segundos... a porra é que só correm no matlab, nao correm em sistema operativo... topas?

Já construi inumeros GUIs, em Java e Visual C++ (e também podes considerar páginas HTML ou PHP como tendo GUIs), e o que tu vês no "editor" de GUIs é no fundo uma representação gráfica do código (Java ou Visual C++) que dá origem à GUI. O que tu vês no Matlab é uma interface para um programa feito no Matlab. Não podes usar isso como GUI para uma aplicação Java ou outra linguagem qualquer.

Um GUI não é nada sem uma linguagem por baixo ... E cada linguagem tem as suas ferramentas para construir GUIs.

Para terminar, fica aqui um link de um gajo que tem um livro fantastico sobre desenvolvimento de software chamado Joel On Software. Este link fala exactamente sobre a construção de GUIs e os problemas à volta disso :

http://www.joelonsoftware.com/uibook/fog0000000249.html

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pah posta aí ScreenShots do teu GUI :| agora fikei interessado :D

Epa... o guide do matlab dá para criares guis em segundos... a porra é que só correm no matlab, nao correm em sistema operativo... topas?

Já ouvi falar em compiladores de matlab... de qq modo o matlab não serve para tudo.

anyway... aqui vai o screenshot para o mr céptico. :thumbsup:

guimatlab2od.th.png

A base do matlab é c++, por isso qdo tens algo em matlab podes converter isso para C++\C e compilar.

http://www.codeproject.com/samples/mexFunction.asp

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já ouvi falar em compiladores de matlab... de qq modo o matlab não serve para tudo.

anyway... aqui vai o screenshot para o mr céptico. :thumbsup:

guimatlab2od.th.png

A base do matlab é c++, por isso qdo tens algo em matlab podes converter isso para C++\C e compilar.

http://www.codeproject.com/samples/mexFunction.asp

Conheces algum compilador de matlab?

é que aquilo nao é um compilador, é um interpretador de comandos.. nao permite por exemplo usar recursividade.

Aquilo pode ser maioritariamente escrito em C++ mas aquilo foi inicialmente escrito em fortran, e isso até se nota bem.

Mas tamos a afastar-nos do tema inicial

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Um GUI é apenas uma componente da programação, o Layout, o Layer de Apresentação na estrutura N-Tier...

N-Tier refere-se aos diversos niveis de programação (antes eram 3 mas agora são N - um valor abstrato, podem ser 2,3,50, etc) , isto é, para melhor desenvolver aplicações destribuidas (correm divididas em várias maquinas, varias redes ou não) e para melhor facilitar o trabalho de equipe (separa-se claramente onde cada um mexe e fexa-se tudo em blocos que comunicam entre si segundo padrões pre-definidos)

As linhas divisórias não são claras e têm muito haver com o toque pessoal das equipes de dev...

Data Layer - Objectos que acedem a bases de dados - Podem ser classes personalizadas para gerir o acesso às bases de dados, mas eu hoje em dia considero o OleDB, o ADO e todas essas tretas como Data Layer, pois abstraiem toda a manipulação de dados... Algumas das coisas que se incluiam no Data Layer incluem-se hoje no Business Layer (Nivel de Negócio)

Bussiness Layer (Nivel de Negocio) - Aqui inserem-se todas as regras de manipulação dos dados, as operações a fazer com os dados, os calculos, etc - Este layer comunica com o data layer para receber e introduzir dados e com o Presentation Layer para apresentar os resultados da manipulação desses dados.

Presentation Layer - Nivel de Apresentação (Layout) - Aqui está o GUI, a forma como se apresenta a informação e como o user pode manipular a mesma.

Isto é só para entenderes o que é um GUI e podes ter um GUI numa linguagem e todo o resto da aplicação noutra... trabalho em apps que operam sobre diversas linguagens e até tecnologias como OS400, Unix e Windows  - Um exemplo são as aplicações Home Banking

OK - Queres desenhar layouts... na web é em HTML, DHTML e CSS - Procura mais info sobre isso - Para editar estas coisas existem muitissimas ferramentas à escolha do gosto de cada um...

Mas eu acho que quem quer mexer nestas coisas deve no minimo saber mexer em dois IDE - Integrated Dev. Interface (um GUI para programar):

O Visual Studio (sim, a nivel profissional é muito importante mexer nessa coisa) É muito simples e separa de uma forma muito boa os diversos niveis de desenvolvimento,  apesentação (para fazer GUI´s) e todos os outros. No mesmo IDE podes ter o HTML, o CSS e o códgio C# ou VB... muito fixe apesar de ser M$ - O melhor para começar e até têm montes de wizards que fazem quase tudo sozinho, basta juntar cliques (usem isto só para brincar, nunca em produção)

O Eclipse - http://www.eclipse.org/ -

Eclipse has formed an independent open eco-system around royalty-free technology and a universal platform for tools integration. Eclipse based tools give developers freedom of choice in a multi-language, multi-platform, multi-vendor environment. Eclipse provides a plug-in based framework that makes it easier to create, integrate and utilize software tools, saving time and money. By collaborating and exploiting core integration technology, tool producers can leverage platform reuse and concentrate on core competencies to create new development technology. The Eclipse Platform is written in the Java language and comes with extensive plug-in construction toolkits and examples. It has already been deployed on a range of development workstations including Linux, HP-UX, AIX, Solaris, QNX, Mac OS X and Windows based systems. A full description of the Eclipse community and white papers documenting the design and use of the Eclipse Platform are available at http://www.eclipse.org.

mas a vida não acaba aqui.. que tal procurarem no google por +GUI +dev +(linguagem de escolha) +IDE....

eu pessoalmente aconselho a começarem com o Python e podem usar o Eclipse, o Boa Constructor, etc

dá uma vista de olhos neste post

http://www.portugal-a-programar.pt/index.php?showtopic=495

inté

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Carago... claro que um gui tem que ser feito numa linguagem qq e depois compilado.

Agora..."um gui sem uma linguagem de programação n é nada"... esta afirmação não está correcta nem incorrecta, mas acho k não faz sentido.

O gui só te aparece depois do o compilares... e aí já não está na linguagem em que foi escrito. Uma ferramenta de construção de um gui gera código automaticamente que depois é compilado de forma a que o SO mostre um gui.

Agora... vamos ver se percebem o que está em discussão aqui:

Imaginemos que eu tenho um projecto de um programa que possa correr no windows ( o uso de javaRE, gtk, etc etc incluidos) e que estou na fase inicial e que ainda não escolhi qual a linguagem que vou usar. Vamos supor: um cliente de FTP por exemplo.

A pergunta é: na vossa opiniao quel é a forma mais facil e eficiente de fazer um cliente de FTP para windows usando uma ferramenta que me gere o código para o GUI?

A resposta deve incluir a linguagem utilizada, as ferramentas de desenvolvimento e tudo o que é necessário par a aplicação correr.

Dêm a vossa opiniao. É dessa que estou à procura.

Sim... eu sei bem o que é um IDE, um compilador, um GUI, uyma linguagem de prog, etc etc. Parem com isso que nao foi isso que perguntei e para isso há outros tópicos. Não me leve a mal

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tas muito confuso o que dificulta ajudar-te... queres um wizard que faça o código para ti?...

ou queres arranjar na net o código fonte completo de uma aplicação?

ou queres programar como todos os outros programadores fazem?

Agora..."um gui sem uma linguagem de programação n é nada"... esta afirmação não está correcta nem incorrecta, mas acho k não faz sentido.

tendo em conta que estamos todos a falar de programação e não wizards de Access, etc, a afirmação está correcta... Um GUI é um interface para um aplicação e não sei nenhuma forma de criar aplicações sem programar... como estou sempre a aprender gostava que explicasses como se faz uma app sem programar... (não estou interessado em wizards)

O gui só te aparece depois do o compilares...

muito errado.. HTML cria GUI´s e não é compilado (entre muitas outras)

se sabes programar sobre SOCKS com o protocolo FTP acho estranho não saberes programar um GUI... ou será que fazes ideia do que é criar um programa cliente FTP?

pelo que me parece queres fazer programação sem programar... hummm... um objectivo muito interessante...

se quiseres fazer GUI como um programador a resposta está dada nos posts em cima...

se só queres chatear.. hummm.. má ideia...

look at the window

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

assim não gosto de discutir.

Ia continuar, mas assim não. acho que nao há necessidade disto.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

va tenham la calma... estamos aqui para conviver e partilhar informação...em paz e armonia  ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem depende muito da linguagem que queres utilizar.

Se estas a trabalhar com Java aconselho muuuuuito usares o SWT Designer que te ajuda a criar GUI's com muito bom aspecto (quase nativo apesar de ser em Java) com o apoio da Lib SWT que e a lib utilizada para fazer o Eclipse, um dos mais conhecidos IDE's para Java (o DWT Designer e um plugin para o Eclise). Se pretendes outra linguagem de programação o Visual Studio tb faz GUI's muito bons desde que depois tenhas paciencia para descodificar o codigo que esta por tras.

Claro que se estas a trbalhar com uma aplicacao real (e ainda por cima uma aplicacao destribuida como um cliente FTP) vais passar muito mais tempo a tratar da camada de comunicacao do que do GUI mas acho que estas ferramentas te podem ajudar...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podem me explicar uma coisa?, eu comecei por aprender PASCAL, na escola, e actualmente estou a aprender VB6. Ora como a maioria de nós se não todos sabemos o VB6 é uma linguagem muito fácil de aprender, principalmente(na minha opinião) por ser visual, eu queria compreender como é que com programas do tipo do dev c++ posso construir um programa em janelas, como o faço com qualquer programa do VISUAL STUDIO?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que acontece e que programas como visual studio geram o codigo enquanto tu desenhas as forms todas bunitinhas, o codigo gerado e normalmente uma barafunda. Com programas como DevC++ tens de sabes utilizar cada um dos componentes e escrever tu o codigo todo, ams se souberres trabalhar bem assim o resultado e tao com ou melhor.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

entao quer dizer que com o Dev C++, qualquer aplicação criada, vai criar um programa muito mais rápido e estável do que com uma ferramenta Visual Studio?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nao, nao foi isso que eu disse, eu estava a referir-me unica e esclusivamente a GUI's, e mesmo assim o DEVC++ nao garante que a tua aplicacao e mais estvel ou mais rapida.

E assim em programacao tu podes fazer tudo no notepad certo? qualquer programa (na granda maioria das linguagens) pode ser feito no notepad do windows.

Tu nao os fazes no notepad porque tens ferramentas que te ajudam, com features como package explorer e code completion.

Uma das features de muitos ambientes de programacao hoje em dia e ajudarem na criacao de GUI's permitindo-te desenhar a gui com o aspecto com que ela ficara e ao mesmo tempo produzindo o codigo correspondente por tras.

O problema e que este codigo que e produzido e muitas vezes intragavel, e complexo os nomes nao fazem sentido, enfim e uma barafunda.

O que eu disse e que e preciso perceber mais de programacao para fazer as coisas a mao  mas normalmente (e isto so depende do programador) as coisas ficam mais bem feitas, mais estruturadas e organizadas.

Normalmente isto nao te produz codigo mais rapido, mas pode ser um bocadinho mais estavel, e e de certeza muito mais extensivel e mantivel.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que eu disse e que e preciso perceber mais de programacao para fazer as coisas a mao  mas normalmente (e isto so depende do programador) as coisas ficam mais bem feitas, mais estruturadas e organizadas.

O dabubble tem toda a razão. Podes fazer um gui sofisticado em assembly. O que eu chamo programação "Raw". Sem dúvida,é necessário ter conhecimentos do SO,funçoes d criação d objectos, etc. etc.. mas faz-se.

Normalmente isto nao te produz codigo mais rapido, mas pode ser um bocadinho mais estavel, e e de certeza muito mais extensivel e mantivel.

Com isto é k eu já não concordo Muito. Normalmente acontece o contrário. O código acaba por ser mais rápido (por exemplo vb funciona praticamente na íntegra sobre uma biblioteca, intermédia entre o sistema e o programa. Todas as funcoes d criação do ambiente gráfico do programa passam por aí.

contudo, se comprarares um programa (p exemplo em C) que crie todo o seu ambiente gráfico com createWindow's, é bem capaz de ser mais lento que um que utilize resources para criar o mesmo ambiente. Contudo, se utilizares a 2ª opção,mas depois começares a fazer as coisas ao contrário (tipo, encheres o programa de rotinas para obter os handlers dos objectos do form, por exemplo) a primeira opção torna-se mais eficiente a executar,mas,obviamente mais trabalhosa no desenvolvimento.

Quanto à estabilidade, sinceramente confio mais em objectos gerados por código feito com ferramentas adquadas, do que num feito por um programador com grandessíssimos conhecimentos.

Errar é humano. E o programa k gerou o código automáticamente já foi testado N vezes.

Mas pessoalmente, prefiro criar eu mesmo os gui's. Com resources, a criar objectos um a um, enfim, como eu vir que é mais eficiente.

[ ]

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Caso estejas a criar um programa em python, podes criar o teu GUI com várias bibliotecas / Linguagens. Podes optar por criar com o GTK, WxPython...  e muitas outras. Algumas têm inclusivê ferramentas que ajudam na criação do GUI.

Tens aqui uma lista completa.

Como já disseram. Vai depender muito d linguagem que estás a usar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora