Muitas dúvidas em relação ao Qt como ferramenta de desenvolvimento de software.
-
Saudações a todos.
Venho estudando, lendo muito e fazendo uns testes no Qt desde a versão 4.7.
Desanimei bastante quando descobri que não é possível criar um formulário no Qt Creator e herda-lo. Minha intenção é criar uma classe de janela de cadastro que tenha todos os recursos que preciso numa tela de cadastro assim como já faço no C#. Depois é só ir herdando para não ter que inventar a roda toda vez e facilita muito a manutenção ou inclusão de um novo recurso. Isso é fundamental em OOP.Outra coisa, basicamente o pessoal cria que tipo de aplicativos no Qt ? Comercial (Administrativo) ou utilitários ?
Preciso saber destas questões para continuar ou não meu estudo no Qt.
Gostei muito dele e da velocidade mas tenho medo que aconteça o mesmo que aconteceu em relação ao C# que aprendi, reescrevi todas minhas bibliotecas pessoais e minha vida não mudou.
Também utilizo o CA-Visual Objects 2.8 desde 1994 e com ele aprendi OOP e apesar que estar defasado tecnologicamente em relação ao Qt/C#, ele me atende muito bem em praticamente todo tipo de sistema.Gostaria de substitui-lo pelo Qt mas até onde conheço do Qt ainda não encontrei motivos suficientes para a migração.
Gostaria de saber a opinião de todos e se possível citar os tipos de sistemas que desenvolvem e qual o nível de satisfação.
Aproveitando... Feliz Natal e Feliz 2015 a todos !!!
Marco Antonio
Tactor Software -
Bem, não é comum existirem aplicações comerciais em Qt. Ao meu ver a maior barreira é a falta de documentação, livros, video aulas, etc, em outros idiomas. Onde você encontra Qt com mais frequência é nas aplicações open source, principalmente no mundo GNU/Linux, vão de editores, IDEs, players de áudio e vídeo, aplicações para imagens, etc. No mundo comercial Qt hoje está sendo muito usado em sistemas embarcados. Qt também tem uma comunidade pequena se comparada as ferramentas MS, e um fato que agrava mais isso é que a comunidade se encontra muito espalhada falta um ponto de encontro único.
Um outro ponto que afasta os desenvolvedores é a linguagem C++, pois exige um curva grande de aprendizado.
Quanto a questão de herança de formulários, + ou -, se você se refere a herança de forma visual, ou seja, auxiliada pela IDE, não existe nada pronto nesse sentido, mas a herança pode ser feita via código pois cada novo widget que você cria no designer se torna uma classe, dai bastaria dar um include no arquivo .h e fazer a herança.
Herança de forma visual também pode ser alcançada via plugins, o Qt Creator suporta plugins onde você pode criar um widget e ele passará a fazer parte da paleta de widgets.
Também programei nas ferramentas CA, Clipper foi a primeira linguagem que aprendi.
Você já deu uma olhada no projeto Harbour? Harbour foi a salvação de muitos clippeiros quando o clipper se foi. Eu tomei um caminho mais árduo sai do clipper e mergulhei em java.
Particularmente acho que hoje em dia, para aplicações comerciais usando ferramentas livres a melhor combinação é Python + GTK+. OpenERP e Stoq são o que há de mais expressivo quando falamos de sistemas comerciais feitos com ferramentas livres, ambos feitos em Python e Gtk. A comunidade Python é bem grande nos dias de hoje e você encontra material em português aos kilos. Livros, Tutoriais, Apostilas, Vídeo Aulas, etc. -
Olá Exotic_Devel, obrigado pela resposta.
Eu comecei a programar em 88/89 em Basic (TK95 e PC) e Assembler (somente curiosidade), depois fui para o Clipper que fiquei muitos anos e desenvolvi muitos sistemas nele e me atendia muito bem, com o surgimento das linguagens visuais testei o Visual dBase, Visual Basic e não gostei. O FiveWin na época era uma gambiarra que "transformava" programas em clipper em Windows. Resolvi mergulhar de cabeça e mudar o paradigma pois percebi que tinham muitos programadores clipper que optaram pelo FiveWin/Harbur por pura preguiça de reaprender uma nova linguagem realmente Windows. Na época (1994) o CA-VO era a única linguagem disponível 100% OOP (OOP que ainda é uma barreira muito grande para muitos), mergulhei de cabeça e não me arrependo.Fico meio decepcionado pelo Qt não estar sendo muito usado para aplicativos comerciais/administrativos. Espero que outras pessoas coloquem suas opiniões também.
O foco da minha empresa é desenvolvimento de aplicativos específicos para a área comercial/administrativa, vamos ver se com o tempo apareçam empresas que utilizam o Qt para aplicativos destes tipos.Grato pelas dicas.
Marco Antonio
Tactor Software. -
Tive uma trajetória semelhante. Comecei com um Tk85 e não parei mais. Me encantei com Java, mas tive que aprender VB (Visual Basic) por questões de trabalho ($$$). Mas sempre gostei de C/C++.
Atualmente, convenci a empresa onde trabalho a desenvolver um produto para um cliente em Qt (aplicação móvel). O cliente aceitou e hoje estamos planejando outros projetos com o Qt.
Concordo com o Exotic_Devel: realmente falta um pouco de conteúdo para pesquisa.
Mas eu prefiro Qt.
Por exemplo: fizemos alguns projetos mobile usando phonegap (cordova). Funcionais, bonitos, mas em performance: ruim. O Qt (com QML) ganha facilmente deste tipo de projeto (com phonegap), em vários sentidos. Principalmente no quesito performance.
O desenvolvedor de web (html), que teve que aprender QML, achou simplesmente muito mais fácil fazer o projeto em QML do que em HTML.
-
Olá TioRoy.
Quando vocês desenvolvem em QML usam o Qt Creator ou codificam na mão como vemos no You Tube ?
Vocês usam a versão free ou a paga ?Tem alguns videos sobre QML mas não são casos reais.
Mais uma coisa, em QML você faz conexão com Banco de dados ou WebService ?Abraços.
-
marcovictor,
No caso do último projeto, codificamos o QML "na mão", porque o layout tinha que que se adaptar à resolução de qualquer aparelho, seja Android ou Iphone. Ficou tudo "relativo". E quase todos os casos o designer de QML não gostou dos nossos arquivos :)
Usamos a versão paga. Por 2 motivos:
1 - Suporte - Tivemos problemas com alguns aparelhos Android. Com o suporte, eles respondem um pouco mais rápido.
2 - Compilação de QML. Deixa o QML mais rápido, no load e na execução.
No QML, usamos uma conexão com o Sqlite que é nativa ao QML (que simula o LocalStorage de browser - que desenvolvedor javascript conhece bem) para gravar preferências e um banco no aparelho.
E para chamadas remotas, fizemos com REST (não webservice/soap), e usamos o XMLHttpRequest mesmo.
-
Obrigado pelas informações TioRoy.
Vamos ver se eu acho um uso para o Qt dentro do meu foco.
Bom Natal e um ótimo 2015 para TODOS.
Abraços.
-
Olá marcovictor,
Conforme descrito pelo Exotic_Devel e TioRoy o desenvolvimento Qt no Brasil encontra muitas barreiras. Outra questão importante é com relação a que tipo de aplicação final você quer.
Da minha parte, Qt atende muito bem a necessidade. Já trabalhei com C++ Builder, Delphi, Genexus(ferramenta case) , Java, FreePascal, etc.
Depois de muito tempo trabalhando como empregado e patrão com as ferramentas acima, iniciei um trabalho com Qt a +- 2 anos. Não me arrependo. Comecei com desenvolvimento relativamente simples para testes. Hoje temos desenvolvido em Qt uma 'ferramenta' emitindo todos os principais documentos eletrônicos (NFe, CTe, NFSe, MDFe, …). Qt também permitiu (o que não consegui fazer em Delphi, etc) a construção da ferramenta base de nosso ERP (em construção) rodando com perfeição nas mais variadas plataformas. Temos programas servidor de aplicação rodando em Window/Linux, e terminal cliente rodando em Android, WinCE, Windows, Linux, etc.
Em resumo: temos grandes módulos, todos desenvolvidos em Qt. Conseguimos dar manutenção e agregar novas funcionalidades com uma rapidez que não consegui atingir com Delphi, Genexus...etc, por isso recomendo a utilização do Qt.
Boas festas.
-
Olá ReinaldoJr.
Quem bom saber que estão utilizando o Qt da mesma forma que eu pretendo.
Mas em relação à herança ? Imagino que deve ter formulários base para os cadastros cadastros diversos.Abraços.
-
Olá,
Humm, não conheço o funcionamento da herança de formulários com C#, então não saberia dizer se tem algum library Qt para isso. Para Object Relational Mapping (ORM) existe o QxORM. Uma busca mais detalhada poderá encontrar alguma biblioteca que faça +- o que você precisa, poupando muito tempo de desenvolvimento.
No nosso caso, optamos por criar uma ferramenta de auxilio ao desenvolvimento do ERP/TMS. Isso envolveu a criação de: modelo de comunicação; programas Servidor; e terminal Cliente. Todo o restante dos programas estão sobre esse tripé. Usamos os conceitos de OO apenas no desenvolvimento dos programas da ferramenta. Os 'programas' do ERP/TMS seguem outro conceito pois rodam em cima da ferramenta desenvolvida.
A escolha de Qt se deu pela liberdade apresentada: é possível fazer praticamente tudo. É claro, sistemas complexos sempre serão complexos (talvez um pouco mais ou um pouco menos), isso independente da linguagem escolhida.
-
Vendo a ultima resposta do TioRoy, agora fiquei aqui pensando. O KDE é feito em Qt. Será que o KDE usa linkagem dinâmica ou estática? Caso estática, será que o kde.org paga a licença para a Digia?
Uma organização de software livre pagando licença de ferramentas soa meio bizarro. -
Pessoal, encontrei uma forma não muito elegante de herdar um formulário onde: Crio o formulário base com tudo o que eu quero. Depois crio outro formulário e na mão forço a herança. Para uma linguagem OOP isso chama-se ajuste técnico (gambiarra).
Gostaria de saber outra coisa: Imagine que no formulário base eu tenha alguns métodos (Gravar, Pesquisar, Fechar, etc) e no outro formulário que está herdando este, quero sobrepor alguns ou todos estes métodos. Como fazer isso ?
Fico no aguardo de qualquer ajuda. -
Segue dois links que podem te ajudar.
http://qt-project.org/doc/qt-4.8/designer-creating-custom-widgets.html
http://qt-project.org/doc/qt-4.8/designer-using-custom-widgets.html
[]'s
-
Viva
Gostava só de acrescentar ao que foi dito anteriormente pelo Exotic_Devel que o Qt é muito, mesmo muito usado em muitas aplicações comerciais, por muitas empresas de topo em todos os tipos de industria que se possam imaginar. Simplesmente as empresas não divulgam o tipo de tecnologia de utilizam.
-
[quote author="john_god" date="1422660191"]Viva
Gostava só de acrescentar ao que foi dito anteriormente pelo Exotic_Devel que o Qt é muito, mesmo muito usado em muitas aplicações comerciais, por muitas empresas de topo em todos os tipos de industria que se possam imaginar. Simplesmente as empresas não divulgam o tipo de tecnologia de utilizam.[/quote]
Eu me referia a aplicações voltadas para a automação comercial, ERPs, frente de caixa, vendas, etc.
Eu não conheço nenhum caso, pode até existir mesmo, afinal, o Brasil é grande :) mas esse desconhecimento só prova o quanto realmente é raro aplicações desse tipo em Qt.
Eu nunca disse que não existia, só disse que não é comum. Você pode pesquizar até aqui mesmo no fórum, pergunte quem aqui trabalha com esse tipo de aplicação em Qt, pode até aparecer alguém mas dúvido que seja a maioria. -
[quote author="marcovictor" date="1422615450"]Pessoal, encontrei uma forma não muito elegante de herdar um formulário onde: Crio o formulário base com tudo o que eu quero. Depois crio outro formulário e na mão forço a herança. Para uma linguagem OOP isso chama-se ajuste técnico (gambiarra).
Gostaria de saber outra coisa: Imagine que no formulário base eu tenha alguns métodos (Gravar, Pesquisar, Fechar, etc) e no outro formulário que está herdando este, quero sobrepor alguns ou todos estes métodos. Como fazer isso ?
Fico no aguardo de qualquer ajuda.[/quote]marcovictor o que você precisa é usar "métodos virtuais":http://programadoraprendendo.blogspot.com.br/2013/02/c-o-que-sao-metodos-virtuais.html.