Je ne m'abstiendrais pas d'utiliser Qt juste pour ces raisons. Vous n'êtes pas obligé d'utiliser toutes les classes d'utilitaires de Qt; pour ceux qui remplacent la STL, vous serez tout au plus obligé d'utiliser QString et, éventuellement, QStringList. En outre, un programme comporte généralement bien plus que l'interface graphique. Vous pouvez toujours utiliser exclusivement du C ++ générique pour le reste de votre programme et utiliser Qt uniquement pour l'interface graphique.
À mon avis, travailler avec STL consiste davantage à comprendre quelles structures de données sous-jacentes sont utilisées et leurs complexités, et par conséquent à quel moment vous devez utiliser chaque conteneur. Et en ce qui concerne la programmation C ++, il s'agit surtout de savoir comment utiliser l'en-tête <algorithm> très essentiel, qui devrait également fonctionner sur les conteneurs de Qt, car ils sont compatibles avec STL.
Je ne vois pas beaucoup de mal à utiliser toutes ces extensions fournies par Qt, tant que vous savez (ou du moins avez une idée générale) de la façon dont elles sont implémentées en interne. Assurez-vous que vous savez que des choses comme Q_OBJECT, SIGNAL (), SLOT (), foreach (), ne sont pas magiques, mais des macros qui se développent en instructions C ++ valides. Par exemple, ce n'est pas si compliqué de comprendre comment les classes implicitement partagées et les relations parent-enfant qui donnent à Qt l'impression d'être plus Java sont implémentées. Vous pouvez toujours essayer de recréer certaines fonctionnalités dans un projet distinct juste pour voir si vous pouvez le faire avec du C ++ générique, et ne vous sentez pas mal de les utiliser dans Qt.
Jetez également un œil aux bibliothèques Boost. Ils fournissent des utilitaires supplémentaires que la bibliothèque C ++ standard ne fournit pas et sont un très bon moyen de se rapprocher un peu du C ++ générique, car ils suivent essentiellement les mêmes conventions que le C ++ générique. Certaines bibliothèques ont des classes modèles assez complexes, et essayer simplement de comprendre comment elles fonctionnent est, en soi, une bonne étude en C ++. Boost possède de nombreux utilitaires introuvables dans Qt, et d'autres qui implémentent des concepts identiques ou similaires à certaines classes de Qt et peuvent être utilisés à leur place.
Si vous entrez sur le marché du travail en travaillant avec C ++, il est probable que vous allez travailler avec Qt ou un autre framework qui, comme lui, aura ses propres classes d'utilitaires qui essaient de simplifier C ++.