Widgets ou QML?
-
Olá pessoal,
é o seguinte: há muitos anos trabalhei com programação, utilizando C++, Visual Basic e depois C#, tudo no Windows. Então fiquei muito tempo afastado do ambiente de programação. Agora estou voltando a programar e em Linux. Pelo que procurei o melhor framework em C++ que achei foi o Qt, além te ter um ótimo IDE. Mas ao baixar e iniciar, estou tendo algumas dificuldades, principalmente em entender o conceito do Qt.
Qual a melhor forma de desenvolver uma aplicação desktop? O que é widgets? Qual a diferença entre Qt Widgets application e Qt Quick UI? QML? Existe indicação para cada opção?
Se alguém puder me ajudar a entender a finalidade da cada uma, ficaria muito grato.
-
Ambas são utilizadas para criar a interface gráfica.
O QtWidgets, foi a primeira abordagem utilizada pelo Qt. A interface é criada a partir de códigos c++. Funciona em Windows, Linux, Android....
O Qt Quick UI, foi criado com foco na agilidade do desenvolvimento das interfaces gráficas, como sugere o nome. A linguagem utilizada é o QML que foi baseado no HTML e JavaScript. Funciona em Windows, Linux, Android....
Particularmente tenho experiência em QtWidgets, comecei agora a aprender qml e por enquanto estou gostando muito.
O QML tem um futuro promissor pela frente, pelo que andei pesquisando, já existe uma versão para web (o QmlWeb) que pelo que eu entendi ainda esta em testes.
Sugiro que aprenda o QML...
-
O QML funciona em todas as plataformas (inclusive IOS). E a vantagem é a declaração mais simples do visual. A curva de aprendizado da galera que vem do HTML/JS foi bem tranquila aqui no trabalho,
Eu prefiro o QML também, porque acho mais simples de fazer uma interface. Além disso, um QWidget num celular fica estranho (a última vez que tentei fazer isso ficou "estranho" o look and feel).
Mas o mais legal que vejo no QML é você poder juntar a interface simples (com javascript) e o mundo em C++. Você pode até fazer um aplicativo inteiro só com QML. Mas caso precise de algo mais específico, fazer o QML usar um objeto em C++ é tranquilo.
-
Então pessoal, é que estou a desenvolver um simulador de um sistema de linha de produção de uma fábrica de grãos. A empresa quer este software para treinar o pessoal que irá operar as esteiras, secadores, etc. O software deve ter o máximo de semelhança com o sistema que eles utilizam na produção. E a interface é cheia de desenhos ilustrando as esteiras, o tanques, os fornos e a mesmo tempo possui muitos botões, gridview, textbox etc. Os desenhos da tela são dinâmicos, ou seja, mudam de cor conforme a temperatura, os botões que simulam uma porta aberta ou fechada também deve ter seus desenhos dinâmicos. O cliente também quer que eu crie exercícios para o treinamento, então preciso utilizar banco de dados aliado à interface, etc.
Ou seja, preciso ter uma interface rica em gráficos e também controles que se conectam bem aos objetos/classes do C++.
Qual a sugestão de vocês?
-
Acho que deverias pelo menos estudar e aprender QWidgets. Trabalhar com Qt e não conhecer Widigets soa meio estranho para mim. QWidgets foi o alicesse do Qt e ainda é a preferencia para aplicações desktop. No meu ponto de vista cada um tem seu lugar, QML => embarcados, Widigets => Desktop. Mas isso nao é uma regra obrigatória.
-