Conhece WxWidgets? Tá na hora de conhecer!

Opiniões / comentarios sobre livros

Moderador: 51

Conhece WxWidgets? Tá na hora de conhecer!

Mensagempor joao » 02 Fev 2009 10:50

Ola pessoal!

Olha, a alguns meses atrás eu pedi conselho sobre qual GUI seria boa para trabalhar em multiplataform. E eu acho que foi o xultz ou outra boa alma que me indicou o wxWidgets.

Eu só tenho a dizer que gostei muito da linguagem! Fácil, rápida e realmente funciona facilmente em Linux e Windows usando quase que o mesmo código!

Deixo um link de um livro que é gratuito e completo sobre o wxWidgets:
http://www.informit.com/content/images/ ... 6_book.pdf

E aconselho vocês a lerem sobre essa GUI que pode ajudar e muito vocês!!!

Qualquer dúvida, podem perguntar!

[]'s
Avatar do usuário
joao
Byte
 
Mensagens: 463
Registrado em: 17 Out 2006 08:21

Mensagempor msamsoniuk » 02 Fev 2009 12:52

eh compativel com gnome ou kde?

compativel que eu digo eh do ponto de vista de visual e integracao... quem usa gnome quer o ambiente inteiro com cara de gnome, quem usa kde quer o ambiente inteiro com cara de kde. nao eh raro existirem projetos paralelos e concorrentes de aplicacoes inteiras embaixo de kde e embaixo de gnome, de modo existir uma coerencia no ambiente como um todo.

se nao existe essa coerencia, seria o mesmo q rodar o office no OSX e ele ter interface de windows. ninguem iria querer usar pq eh uma interface porcaria e nao segue os padroes usados no resto do sistema operacional...seria absurdo, no mac usa-se command+c para copy, no windows usa-se control+c para a mesma coisa, daih o usuario se embanana todo... e coisas como drag-and-drop simplesmente param de funcionar!

chutando por alto, se nao for compativel eu diria q eh meio furada ter q poluir a maquina com bibliotecas para motif, xview e outros ambientes obsoletos soh por causa de uma ou outra aplicacao... eh a receita para o completo caos, perda de performance, perda de funcionalidade e a principal fonte de defeitos e reclamacoes contra o linux! :)

no windows, provavelmente a mesma coisa. pelo que tenho estudado, o melhor mesmo ainda eh usar os ambientes nativos de cada sistema operacional e isso acho que vale tambem para o windows. mistrurar bibliotecas opensource de linux no windows eh furada e soh tenho visto aplicacao porcaria com defeito quando fazem isso.

eh uma critica dura, mas parece que qualidade e flexibidade nao sao objetivos convergentes. para ter qualidade tem q ter versoes dedicadas para cada sistema, senao realmente fica ruim.
#innovation #poweredby #riscv https://github.com/darklife/darkriscv
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor enigmabox » 02 Fev 2009 13:07

Outro ambiente multiplataforma foi o Kylix (Linux) da borland compativel com o c++Builder e Delphi do windows.
No inicio parecia que seria o melhor instrumento de transição do windows pra Linux, mas depois vendo como a coisa fica, não dá. Se for fazer programas simples que não trabalhem com I/O até que vai.
Usar uma interface para duas plataformas diferentes acho que não dá certo, sempre tem que implantar um pedaço de uma plataforma na outra.
enigmabox
 

Mensagempor joao » 02 Fev 2009 13:22

Ola Marcelo,

Respondendo diretamente a sua pergunta, copio aqui o que eu achei na página principal do projeto, que por sinal acabei esquecendo de colocar o post original:
http://www.wxwidgets.org/

wxWidgets lets developers create applications for Win32, Mac OS X, GTK+, X11, Motif, WinCE, and more using one codebase. It can be used from languages such as C++, Python, Perl, and C#/.NET. Unlike other cross-platform toolkits, wxWidgets applications look and feel native. This is because wxWidgets uses the platform's own native controls rather than emulating them. It's also extensive, free, open-source, and mature. Why not give it a try, like many others have?


Como escrito na terceira frase, pode-se ver que ele é feito exatamente para se parecer como um programa nativo. E mais, existe o wxUniversal no qual vc pode deixar o seu programa com a mesma cara em todos os sistemas.

Não puxando a sardinha para o lado deles, mas já puxando:
- O Kicad é baseado nele.
- O Audacity também é baseado nele
- O SymLab também é baseado nele.
Mais alguns exemplos:
http://www.wxwidgets.org/about/screensh.htm

Lá vc poderá ver que o ambiente para Linux e para Windows são diferentes, mas as funcionalidades são as mesmas.

Mais algumas historinhas sobre o wxWidgets:
- Era para se chamar wxWindows, mas a microsoft conseguiu proibir esse nome;
- Ele começou a ser criado em 1992; Mas em 1998 saiu a versão 2.0. Então eles estão trabalhando a mais de 10 anos com a mesma versão, mas agora já se encontra na 2.8. O que está muito estável e funcionando redondo. (Pelo menos para os meus projetos! :) );
- Existe um livro free que eu postei lá em cima com mais de 700 páginas explicando sobre tudo;
- Existe uma vasta gama de código com suporte para periféricos. Um que eu achei muito interessante e funcionou foi a WebCam. Funciona perfeitamente em Windows e Linux, sendo que é necessário usar 2 libraries diferentes(V4L e V4W), mas rodou com o mesmo código na camada mais alta(WxWidgets);
- O fórum funciona! (Experiência própria)
- Eles tem várias ferramentas para se fazer drag and drop, As mais comuns são o wxDev-Cpp(windows somente) e wxDesigner.
- Existe uma IDE que roda tanto Windows como Linux: CodeBlocks.

Problemas que tive com ele:
- Para imagens ele é lerdo, mas é que eu precisava usar outro tipo de objeto e ainda não utilizei. Então, de modo geral, tratamento de imagem é lerdo.(Pelo menos até eu usar um outro objeto que eles me sugeriram)

[]'s
Avatar do usuário
joao
Byte
 
Mensagens: 463
Registrado em: 17 Out 2006 08:21

Mensagempor joao » 02 Fev 2009 13:31

Ola Enigmabox!

Olha, apenas lendo o que vc escreveu, o wxWidgets é para executar exatamente igual toda a parte gráfica, respeitando é claro o estilo de cada sistema.
Mas com o wxUniversal, vc pode criar a sua própria tela e a mesma será identica em todos os sistemas. É para isso que eles criaram ela.

Quanto a I/O, isso sempre será diferente, eu concordo, mas olhando o exemplo da webcam, eu vi que uma gigantesca parte do código ficou exatamente igual em ambos os sistemas, mudando apenas a chamada da I/O. No caso da webcam, eu estava usando ainda duas bibliotecas com finalidades parecidas: Video for linux e video for windows, então os métodos eram iguais em ambas e foi apenas necessário mudar um parametro na compilação para compilar com uma ou com a outra.

Outra vantagem do wxWidgets é em relação a UNICODE. O suporte já está implementado e na maioria das vezes vc não faz nada! Porque eles tem uma string propria deles(wxString) que faz tudo para ti. mesmo quando vc tá declarando uma constante do tipo:
"isso é um texto!!!"
Vc apenas precisa fazer:
wxT("isso é um texto!!!");

E dai quem vai decidir se vc vai usar UNICODE ou não é na compilação do wxWidgets, mas o código será sempre o mesmo. Ou seja, passando UNICODE=1 ou UNICODE=0 na compilação da biblioteca, vc sempre usará:
wxT("isso é um texto!!!");

No fórum existe um monte de perguntas sobre como usar I/O e normalmente existem exemplos. Quem sabe você possa dar uma olhada lá e achar algo que precisa em específico.

[]'s
Avatar do usuário
joao
Byte
 
Mensagens: 463
Registrado em: 17 Out 2006 08:21

Mensagempor chipselect » 02 Fev 2009 14:15

alguém já consegiu instalar o wxSmith no Code:Blocks dentro do linux sem muito sofrimento, pra gerar código pra outra plataforma (será que é meu slackware...)? Pode até ser outra distro...

Estou querendo usar ele no Gumsitx, na distro OpemEmbedded, mas o wxWidgets pro Gumstix só tem o básico...

Bom, pra quem quiser um passo a passo do wxWidgets, tem esse ebook:
http://d.scribd.com/docs/1xh1gxcrf1mjhw57eyij.pdf
chipselect
Word
 
Mensagens: 744
Registrado em: 16 Out 2006 18:50

Mensagempor joao » 02 Fev 2009 14:26

Ola Chipselect!

Qual o problema que vc tem? Apenas vendo o wxSmith (que é um drag and drop tool, até onde eu entendi, certo?) ele gera o código e vc apenas compila e pronto.
:)

Claro que temos que levar em consideração as bilbiotecas necessárias, então, você poderia passar a linha de comando?

Você chegou a tentar compilar apenas uma simples aplicação usando o Shell? Só para ver se o wxwidgets está ok.

PS: O livro que vc indicou é o mesmo que eu passei. ;)

[]'s
Avatar do usuário
joao
Byte
 
Mensagens: 463
Registrado em: 17 Out 2006 08:21

Mensagempor enigmabox » 02 Fev 2009 15:18

Joao,

Parece interessante esta interface, vou dar uma estudada pra conhecer.
Bom.. A borland criadora do Kylix não dá mais suporte...Acho que abandonaram o projeto.
Bem lembrado , vi no Kicad, algo dizendo que usa o wxWidgets.
enigmabox
 

Mensagempor chipselect » 03 Fev 2009 12:01

pois é joão, eu quero o wxSmith pra "fazer telinha a lá windows..."

o code:blocks que instalei no slackware não tem essa opção, e a versão que instalei no windows tem (ambas versões são 8.02)...

estou procurando montar um ambiente de desenvolvimento, de preferência tipo um RAD, pra fazer software com o Linux embarcado, usando o Gumstix.

Já tenho o sqlite integrado com uma gui no código, utilizo GTK+ e gcc, e pra fazer tela eu uso o glade, mas o tal do glade é muito ruim pra fazer tela quando comparado ao wxSmith (não dá nem pra comparar com ferramentas como o eclipse + vep, netbeans, visual studio, borland developer studio...).

Da maneira que estou fazendo é muito pouco produtivo, lento mesmo pra fazer tela, principalmente porque a aplicação fica mudando as fontes e os campos da tela de lugar e tamanho, além de ter algumas threads e o software ser orientado a eventos...
chipselect
Word
 
Mensagens: 744
Registrado em: 16 Out 2006 18:50

Mensagempor msamsoniuk » 03 Fev 2009 12:47

eu já tinha visto o site joão, vi que tem um look-and-feel nativo no windows e OSX, mas ainda assim, eh soh uma casca que imita o ambiente nativo, ele nao tem as funcionalidades completas do ambiente.

mesmo no linux, imitar o visual do gnome ou kde nao eh o mesmo que ter o proprio rodando por baixo... uma hora a funcionalidade quebra, por exemplo, o cara entra no painel de controle, muda fonte e cores do ambiente e tudo muda. menos a aplicacao que usa uma imitacao visual daquele ambiente. mesma coisa no windows ou OSX e isso reflete como sendo uma aplicacao de baixa qualidade, sei lah, eu nao uso software q nao eh integrado com o ambiente, depois comeca dar um monte de problemas e o cara nao sabe pq, fica colocando a culpa no sistema operacional. no OSX as aplicacoes tem display PDF, conversao de texto para voz, etc... se vc usa outras bibliotecas, vc perde tudo.

se vc nao quer esquentar a cabeca, nem pensa duas vezes, esquece essas porcarias obsoletas e adota os tools padronizados de cada sistema. querer fugir disso eh querer inventar moda e sempre dah problema no final.
#innovation #poweredby #riscv https://github.com/darklife/darkriscv
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor joao » 03 Fev 2009 13:07

Mas marcelo,

É exatamente isso que eles fazem. Se vc ver bem, vai ver que eles usam as chamadas de APIs nativas do ambiente. Ou seja, se vc mudar a cor do seu ambiente, ou, pelo menos no windows, mudar o estilo(voltar para o win98 style) ele irá acompanhar a mudança, pq ele usa API's do sistema e não emulação. (Trabalhei muito com o Allegro e sei como é ruim pacas tentar deixar num estilo bonitinho em cada um dos sistemas...)

Esse dai me impressionou logo de cara. Foi apenas instalar as libs necessárias e tudo que eu tinha feito no windows e rodou no linux(Claro, que não tinha implementado nada de I/O, apenas modo gráfico.)

Realmente eu acho ele uma boa solução para quem precisa trabalhar em vários ambientes...

Outra coisa que eu achei legal é que até a impressora vc irá usar o mesmo código. A camada do wxWidgets cuidará de ver o correto acesso...

Tente dar uma zoiada nos exemplos da bilbioteca e vc vai ver que ele é exatamente do jeito que vc deixou a sua máquina. Mude a cor/estilo/fonte e veja que irá mudar também....

[]'s
Avatar do usuário
joao
Byte
 
Mensagens: 463
Registrado em: 17 Out 2006 08:21

Mensagempor joao » 03 Fev 2009 13:17

Ola chipselect!

Não esqueci de vc não!

Olha, eu uso td apenas no editor normal. No caso eu apenas trabalho no windows e testo de vez em quando no Linux para garantir que está compatível.
Maaaaassss...

Eu achei este link que parece ser bem interessante:
http://forums.codeblocks.org/index.php?topic=9884.0

Lá eles ensinam como instalar no Ubuntu, mas eles estào compilando o fonte. Então vc pode usar a mesma idéia no slackware.
Aparentemente, vc tem que compilar o Code::Blocks com a opção para o wxSmith. Acho que ai é que está o seu problema.

[]'s
Avatar do usuário
joao
Byte
 
Mensagens: 463
Registrado em: 17 Out 2006 08:21

Mensagempor _blackmore_ » 21 Fev 2009 11:35

Fala joao !!

A algum tempo vc me indicou este software ... ( http://asm51.eng.br/phpBB/viewtopic.php?t=6304 )achei bacana mas por falta de tempo não pude fuçar e aprender muito.
Já peguei o livro indicado neste tópico por vc, parece ser muito completo, mas só para não deixar de ser chato :lol: vc não tem alguma literatura em português que ensine como usar o software não?sou ainda um bocado lerdo no ingrêis ... e poxa ... vou demorar para caramba para entender muito do escrito no livro. :)
Agora para saber um pouco mais ... vc não teria aí alguma aplicação "simples" para que eu possa fuçar e entender algumas coisas nele? tipo ... entra com valores e ele retorna o valor convertido em outra unidade ... não quero nada sofsticado ... apenas entender algumas coisas ... não tenho pretenção de ser especialista .. apenas tentar entender alguma coisa.

abrax!
Ouça mais classic rock
_blackmore_
Dword
 
Mensagens: 1397
Registrado em: 28 Set 2008 13:26


Voltar para Livros

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x