J'ai essayé d'utiliser qt5 mais je le trouve très déroutant. P>
J'ai une bonne connaissance de C ++ (je dirais entre le niveau d'experts intermédiaire) mais aucune connaissance de JavaScript ou de QML (Seuls de base HTML) P>
Lorsque je passe à travers les exemples et les didacticiels fournis avec qt, je trouve davantage de documents de référence ou comme "Quoi de neuf" Stuff pour les développeurs qui utilisent déjà QT. Cela me montre des parties aléatoires (non systématiques) de la vaste bibliothèque QT. P>
Je suis actuellement plus intéressé par l'utilisation des applications Widget QT plutôt que des applications basées sur QT QML. P>
Voici donc ce que je veux demander. P>
est QML la langue principale et C ++ juste une langue de support? En d'autres termes, a utilisé QT pour les applications basées sur C ++ devient une chose de dépréciation de facto? Est-ce que qt n'est-il utilisé que pour les applications QML? P> li>
Que dois-je apprendre à pouvoir utiliser qt? p> li>
ol>
5 Réponses :
J'ai développé quelques applications QT et à ce jour aucune connaissance de afin de répondre à vos questions: p>
Pour le moment, je ne vois aucune raison pour que dans qt 5 Il y a à ma connaissance aucun signe de la vieille em> de devenir obsolète. S'il vous plaît corrigez-moi si je me trompe p> li>
Si vous avez déjà une bonne compréhension de Sauf que je suggérerais de télécharger et d'installer Qt (y compris des exemples) et d'exécuter quelques-uns de ces exemples a >. Dans Qt 4, il y avait aussi un programme appelé qtdemo auquel je ne trouve pas de lien dans qt 5, donc je ne sais pas si cela existe toujours. Si vous pouvez vous procurer s'il y a de grands exemples de ce que vous pouvez faire. P> qml code>. Il est définitivement la nouvelle façon em> car il est plus récent que ce que vous êtes après, mais si tout sera fait dans
qml code> dans qt 6 ou 7 je n'ai aucune idée. p>
qml code> serait nécessaire pour développer des applications basées sur le bureau à l'aide de qt. Cela peut être différent pour mobile mais je n'ai aucune expérience jusqu'à présent dans ce p> li>
C ++ code> La principale chose que vous devez apprendre est le principe de Signaux & Slots et les classes principales utilisées dans les applications de bureau ( qapplication a>, QmainWindow , qwidget et qObject par exemple) p> < / li>
ol>
"S'il te plaît, corrigez-moi si je me trompe" tu as tort: blog.qt.io/blog/2012/04/18/qt-5-c-and-qt-widgets
@ Cmannett85: Je vais devoir être en désaccord avec vous. Tout d'abord, "fait"! = "Obsolète". Deuxièmement, certaines citations de votre lien Lien: Mais cela peut changer n'importe quel jour si quelqu'un a un certain intérêt ou doit faire un développement plus actif dans cette zone. Code>,
C ++ est et restera notre principale langue de programmation . code>
@ CMANNETT85 Vous devez avoir mal compris les mots qui ont été saisis dans chacun de ces ordinateurs de ces personnes.
Actuellement, il n'existe pas de nombreux livres sur Qt5, la source principale est donc la documentation officielle et Web, mais des livres actuellement disponibles: P>
livre général QT qui a été mis à jour à Qt 5.3, mais en russe: Non, je connais des personnes qui n'utilisent pas du tout QML, mais que quelqu'un d'autre l'utilise plus que c ++. Cela dépend vraiment de vos besoins. P> LI>
c ++ est actif et, par exemple, Digia propose des Modules non libres , comme QT Graphiques qui peuvent être utilisés Botj avec QML et C ++. De plus, les développeurs QT soutiennent toujours de nouvelles normes C ++. Par exemple, nous avons des fonctionnalités supplémentaires lorsque C ++ 11 ou C ++ 14 a été libéré. Par conséquent, ce n'est certainement pas une langue obsolète. p> li>
ol> li>
ul>
qml est juste une langue frontale, il est très bon de construire de belles interfaces sans maux de tête, mais le back-end est toujours Code C ++. P>
Il y a beaucoup de tutoriel QT et de ressources disponibles en ligne. Vous pouvez simplement utiliser un moteur de recherche pour trouver ce que vous voulez. P>
La chose la plus importante que vous devez apprendre dès que possible est le concept de créneaux de signaux, pour deux raisons: p>
connectez code>
fonction et le qmake code> préprocesseur. LI>
ol>
Ce n'est pas du tout compliqué. Vous pouvez considérer cela comme une bonne aide dans la programmation, mais vous devez apprendre comment l'utiliser (c'est facile). P>
qml n'est pas essentiel à mon avis. Il peut être utile pour les applications mobiles, mais, à présent, je développe des applications de bureau uniquement et je me développe sans problèmes en utilisant uniquement des classes C ++. P>
QT est un cadre très important utilisé depuis des années, tandis que QML n'est apparu que récemment. Beaucoup d'applications sont construites avec QT et non QML. P>
Oui, le module widgets QT que nous avons dans Qt 5 est actuellement marqué comme "Fait", ce qui signifie que nous n'avons pas de quiconque travaillant activement sur de nouveaux Caractéristiques pour le module à ce stade à temps. P> blockQuote>
comme une personne qui a passé de nombreuses années à développer
qwidget code> des applications basées sur qwidget, je le trouve visitant em> plus facile à développer des UIS à QML - ça vaut la peine d'apprendre. P>
Non, et je ne sais pas comment vous êtes venu à cette conclusion. Qtquick est une couche frontale, elle a une fonctionnalité très limitée en dehors de cela. En d'autres termes, pour toutes les applications les plus simples, vous aurez besoin d'un backend C ++ (ou Python, Haskell, Java, etc.). P> Li>
QT est un cadre (énorme), vous ne pouvez pas commencer au «début» et tout apprendre jusqu'à ce que vous atteigniez «fin» - cela n'a aucun sens. Utilisez les tutoriels pour obtenir une idée de la conception de l'API et sur la manière de contacter des problèmes courants et de lire la documentation de référence pour apprendre les capacités qu'il a. P>
Quant à ce que vous devez apprendre: noyau interne , MVC , qtquick , qmake . P> li> ol>
Qwidgets ne sont pas obsolètes. Un module obsolète signifie qu'il est prévu pour le retrait dans une version ultérieure de QT. Il n'y a rien de tel avec les widgets: ils ne voient peut-être pas un développement énorme, mais ils reçoivent des bugs constants, des imprévements et sont totalement entretenus. Qwidgets sont là pour rester b>. Ils seront pas i> partir dans un avenir prévisible.
@Peppe Bon point, pour être juste, j'ai dit "considérez-le ...", ce qui signifie ne le touche pas pour le nouveau développement. Mais tu as raison, je le changerais.
En outre, il est trompeur de dire «vous ne devriez pas le considérer». Il se résume vraiment à quel type d'application que vous essayez de construire et quelles fonctionnalités sont actuellement disponibles dans les contrôles QTQUICK / QTQUICK. Une application de bureau «typique» est encore mieux implémentée à l'aide de widgets (essayez d'implémenter un éditeur de code dans QML). N'oubliez pas que les widgets ont 20 ans d'histoire, Qtquick2 seulement 3 ...
Il sera difficile de trouver des informations complètes et statistiquement démontrables à ce sujet, mais je suis heureux de vous donner mon opinion qui est basée sur mon expérience de 6 ans et plus d'expérience en utilisant QT. p>
1) Non, ce n'est pas absolument essentiel d'apprentissage QML pour l'utilisation de QT, il existe des objectifs qui sont plus faciles à atteindre à l'aide de QML et d'autres personnes plus faciles à atteindre en Qt / C ++ et il y a quelques éléments qui ne peuvent pas être faits avec QML. . Par exemple, si vous souhaitez créer une application de plate-forme multiple mobile légère basée sur des données simples et où l'expérience utilisateur est beaucoup plus importante, la logique commerciale est probablement le meilleur choix. Dans de nombreux autres cas, Qt / C ++ est probablement une meilleure option. p>
2) Pour quelque temps, C ++ / QT a été le seul réel cadre multi-plate-forme multiplate-plate-forme d'application de bureau, ce n'est maintenant pas le cas plus et que les applications de bureau perdent progressivement la popularité, de nos jours, les applications Web et les applications mobiles sont préférées par la Grand public et par des gestionnaires qui décident comment mettre en œuvre des applications. À mon avis, les applications de bureau sont devenues amorties plutôt que QT / C ++, pour ces raisons Digia (les propriétaires de QT) poussent la QML plus que la chose traditionnelle C ++, en espérant que les gestionnaires choisiront de développer leur prochaine application plutôt que de rédiger un webApp ou un application mobile natif. p>
Il y a un champ où Qt est toujours la norme de facto et c'est le marché des applications intégrées. Il existe des millions d'appareils tels que des machines à laver, des automobiles de billets, des machines à sous, des ordinateurs de voitures, des périphériques GPS et CETERA qui sont basés sur Linux et pilotés par un logiciel écrit totalement en Qt / C ++. P>
3) Pour commencer à apprendre QT un cours de quelques jours initial serait une bonne idée, mais cela ne sera pas bon marché. KDAB est probablement une bonne option, ils donnent des cours périodiquement en Europe et aux États-Unis. Si votre budget ne permet pas un cours, ma suggestion est de regarder les exemples de l'IDE et de lire (une partie de) le vaste ensemble de tutoriels et de suggestions que vous pouvez trouver en ligne. p>
Merci pour l'édition Bacarozoo
@THOMAS J'ai modifié la question pour adapter les règles (une partie supprimée de la question qui a demandé des ressources externes)