Pergunta

Sei que o uso do QML é bastante novo no QT e fiquei me perguntando se deveria projetar meu aplicativo usando QTDesigner ou QML. Usarei um padrão MVC e minha principal preocupação se usar o QML para a GUI for que talvez não seja fácil integrar dentro da RESTE do meu aplicativo C ++.

Sinta -se à vontade para dar seus conselhos pessoais, eu apreciaria muito isso. Obrigada!

Foi útil?

Solução

O QML destina -se principalmente a plataformas móveis. Devido à sua juventude e sua preocupação com convenções variadas de interface da plataforma, falta controles padrão como botões e caixas de combinação (mas veja o Componentes projeto). Se você está no celular ou sua interface do usuário exige um estilo visual altamente personalizado, qml poderia Vale a pena considerar. Esteja preparado para muito trabalho extra na criação de controles personalizados. A integração de QML e C ++ ainda é bastante difícil na minha opinião. Pessoalmente, recomendo o uso do QML apenas para aplicativos mais simples, apenas em plataformas móveis e apenas com JavaScript. Nas circunstâncias certas, posso considerar escrever elementos QML personalizados em C ++.

A API C ++ da QT não vai embora tão cedo. Ele também foi projetado com a área de trabalho em mente e fará um trabalho melhor para atender às expectativas do usuário nas plataformas de desktop. Se você estiver na área de trabalho, eu recomendaria manter o C ++ e o designer. Mesmo depois que o QML amadurece um pouco, provavelmente não será a solução certa para a maioria dos aplicativos de mesa.

Atualizar!

Parece que as coisas são começando a mudar. Ainda não experimentei os novos componentes, e a documentação parece um pouco escassa (ou pelo menos, fora do caminho), mas isso pode eventualmente remover a maior barreira para usar o QML na área de trabalho. Resta saber se isso receberá suporte a longo prazo, mas se você estiver disposto a aceitar o risco de ser um adotante inicial, acho que o QML agora pode ser uma escolha viável para aplicativos de desktop.

Outras dicas

Vale a pena tentar um pouco de QML para testar se atende às suas necessidades.

Se você estiver construindo uma interface de usuário altamente personalizada com interfaces e animações dinâmicas, o QML se encaixa no trabalho; Se você estiver criando um aplicativo de desktop tradicional, provavelmente desejará manter a API QT C ++.

Em relação à integração entre QML e C ++, o QML foi projetado para ser facilmente integrado ao código C ++, e muitos aplicativos QML usam algum tipo de back -end C ++. É simples injetar objetos C ++ em uma interface QML ou gravar elementos QML personalizados em C ++. Dê uma olhada em http://doc.qt.io/archives/qt-4.7/qtbinding.html e http://doc.qt.io/archives/qt-4.7/qml-extending-tutorial-index.html.

Uma coisa perdida pelas respostas acima é que o QML tem a vantagem/desvantagem adicional do JavaScript para a lógica de negócios (se necessário). Atualmente, estou construindo um aplicativo de tamanho (pequeno a médio) para o desktop e agora meus (2) usuários de alfa gostam. Estou impressionado com a expressividade da estrutura e a rapidez com que posso levantá -la e testar. No geral, acho mais rápido trabalhar do que um editor RAD (designer) e gosto de ter JavaScript como um retorno na minha interface do usuário quando estou fazendo coisas irritantes como pairar/validação etc ...

Eu acho que é uma questão de quão confortável você se sente com o idioma. Se C ++ for o seu idioma "ir para", provavelmente você favorecerá o designer. Se você vem da web (confissão, sou um engenheiro Java EE/MVC .NET Dev fazendo muito front -end), você achará que é refrescante e rápido.

Também permite alguma capacidade de resposta que os usuários esperam atualmente. No geral, eu daria uma grande vantagem. Experimente-você provavelmente ficará bastante por favor e bastante irritado no mesmo período. Ainda estou com raiva de algumas coisas (Fileio em particular), mas tenho gostado do lado da GUI de uma maneira que raramente faço na área de trabalho.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top