Qt Designer C++ ou QML pour GUI [fermé]

je sais que L'utilisation de QML est assez nouvelle dans QT et je me demandais si je devais concevoir mon application en utilisant QTDesigner ou QML. Je vais utiliser un modèle MVC et ma principale préoccupation si J'utilise QML pour L'interface graphique est qu'il pourrait ne pas être facile à intégrer dans le reste de mon application C++.

N'hésitez pas à donner vos conseils personnels, je vous en serais très reconnaissant. Je vous remercie!

45
demandé sur Aerovistae 2011-01-06 01:59:18

3 réponses

QML est principalement destiné aux plateformes mobiles. En raison de sa jeunesse et de son intérêt pour les diverses conventions d'interface de plate-forme, il manque de contrôles standards comme les boutons et les boîtes combo (mais voir le Composants projet). Si vous êtes sur mobile, ou si votre interface nécessite un style visuel très personnalisé, QML être utile d'examiner. Être préparé pour beaucoup de travail supplémentaire dans la conception de contrôles personnalisés. Intégrer QML et C++ est encore assez difficile à mon avis. Je recommande personnellement D'utiliser QML uniquement pour les applications plus simples, uniquement sur les plateformes mobiles, et uniquement avec JavaScript. Dans les bonnes circonstances, je pourrais envisager d'écrire des éléments QML personnalisés en C++.

L'API C++ de Qt ne va pas disparaître de sitôt. Il est également conçu avec le bureau à l'esprit et fera un meilleur travail de répondre aux attentes des utilisateurs sur les plateformes de bureau. si vous êtes sur le bureau, je vous conseille de vous en tenir au C++ et au Designer. Même après QML mûrit un bits, il ne sera probablement pas la bonne solution pour la plupart des applications de bureau.

mise à Jour!

on dirait que les choses sont un début de changement. Je n'ai pas encore essayé les nouveaux composants moi-même, et la documentation semble un peu clairsemée (ou du moins, hors du chemin), mais cela pourrait éventuellement supprimer la plus grande barrière à l'utilisation de QML sur le bureau. Il reste à voir si cela obtiendra un soutien à long terme, mais si vous êtes prêt à accepter le risque d'être un des premiers à adopter, je pense QML peut maintenant être un choix viable pour les applications de bureau.

44
répondu Steve S 2016-01-29 22:42:53

il vaudrait la peine d'essayer un peu de QML pour tester si cela convient à vos besoins.

si vous construisez une interface utilisateur très personnalisée avec des interfaces dynamiques et des animations, alors QML convient à la tâche; si vous construisez une application de bureau traditionnelle, vous voudrez probablement vous en tenir à L'API Qt C++.

en ce qui concerne L'intégration entre QML et C++, QML est conçu pour être facilement intégré au code C++, et de nombreuses applications QML utilisent une sorte de backend C++. Il est simple pour injecter des objets C++ dans une interface QML, ou écrire des éléments QML personnalisés en C++. Jetez un oeil à http://doc.qt.io/archives/qt-4.7/qtbinding.html et http://doc.qt.io/archives/qt-4.7/qml-extending-tutorial-index.html.

15
répondu blam 2015-11-25 07:03:22

une chose manquée par les réponses ci-dessus est que QML a l'avantage ou l'inconvénient supplémentaire de JavaScript pour la logique des affaires (si nécessaire). Je suis en train de construire une application (petite à moyenne) pour le bureau et en ce moment mes utilisateurs (2) alpha l'apprécient. Je suis impressionné par l'expressivité du cadre et à quelle vitesse je peux l'obtenir en place et testé. Dans l'ensemble, je trouve qu'il est plus rapide de travailler avec un éditeur RAD (designer) et J'aime avoir JavaScript comme solution de rechange sur mon UI quand je suis faire des choses ennuyeuses comme plane/validation etc...

je pense que c'est une question de comment vous êtes à l'aise avec la langue. Si C++ est votre langage" go To", vous favoriserez probablement le concepteur. Si vous venez du Web (confession, je suis un ingénieur en EE Java/MVC.dev faisant beaucoup de front end) vous trouverez cela rafraîchissant et rapide.

il permet également une certaine réactivité que les utilisateurs attendent ces jours-ci. Dans l'ensemble, je lui donnerais un énorme plus. Essayez-vous allez le probablement être plutôt s'il Vous Plaît et plutôt ennuyé dans le même laps de temps. Je suis toujours en colère à propos de quelques choses (FileIO en particulier) mais j'ai apprécié le côté GUI des choses d'une façon que je fais rarement sur le bureau.

13
répondu Daniel B. Chapman 2013-11-26 21:57:28