Developpez.com - Rubrique Qt

Le Club des Développeurs et IT Pro

Qt 5.2 Beta propose un support complet d'Android et iOS

Ainsi que des modules pour l'accès à des fonctionnalités natives

Le 2013-10-24 15:25:22, par arnolddumas, Rédacteur/Modérateur
La version beta de Qt 5.2 est désormais disponible. Beaucoup de choses se sont passées depuis Qt 5.1. En plus des nouvelles plates-formes supportées, beaucoup de nouvelles fonctionnalités ont été ajoutées et de gros changements ont été réalisés sur les rouages internes.

Qt partout


Qt 5.2 introduit deux ports, prêts pour un usage industriel, pour Android et iOS. Ces deux nouvelles plates-formes ont été au cœur des efforts récents ; ces deux nouveaux ports étendent la promesse de Qt, à savoir viser le bureau, l'embarqué ainsi que les mobiles avec un seul framework, Qt.

Avec un support complet d'Android, d'iOS et de Blackberry, Qt 5.2 est une très bonne solution pour viser l'écosystème mobile avec une application existante basée sur Qt. Cela constitue aussi un gros plus pour les utilisateurs actuels de Qt. Cela rend facile et rapide le port d'une application pour bureau ou embarqué vers le monde mobile : il suffit de la recompiler.

Fondations améliorées – plus de puissance et de flexibilité

Qt 5.2 introduit un nouveau graphe de scène. Ce dernier améliore les performances graphiques de Qt Quick, en libérant le temps du processeur pour l'application et en faisant un meilleur usage du processeur graphique.

Le précédent moteur JavaScript, V8, qui était utilisé en interne par Qt Quick, a été remplacé par un tout nouveau moteur spécifique à Qt. Ce nouveau moteur est conçu de zéro pour les cas spécifiques de QML et Qt Quick. En interne, ce dernier utilise les type de données Qt, ce qui évite les coûts de conversion. Il possède à la fois un compilateur juste-à-temps (JIT) et un interpréteur, ce qui étend le nombre de plates-formes et de système d'exploitation supportables; notamment, ce nouvel interpréteur est compatible avec les règles de l'AppStore et donc utilisable sur iOS.

Nouveaux modules et bonus


Parmi les nouvelles fonctionnalités de Qt 5.2 se trouvent :

  • Qt Bluetooth : supporté par Linux avec Bluez 4.x et par BlackBerry ;
  • Qt NFC : supporté par Blackberry ;
  • Qt Positioning : supporté par toutes les plates-formes en utilisant les données NMEA et en utilisant GeoClue sous Linux ;
  • Qt Windows Extras : interface du code natif Windows ;
  • Qt Mac Extras : interface du code natif OS X ;
  • Qt Android Extras : interface du code natif Android ;
  • un support amélioré des fuseaux horaires et des différentes langues avec QTimeZone et QCollator ;
  • différentes améliorations des composants de Qt Widgets et apparition d'un nouveau widget, la classe QKeySequenceEdit ;
  • la classe Animations pour QML, pour ne pas voir son animation bloquée par une haute activité dans le fil d'exécution principal ;
  • des fonctionnalités et des contrôles spécifiques aux mobiles ont été ajoutés au module Qt Quick Controls ;
  • l'accessibilité est maintenant totalement sur toutes les plate-formes de bureau et un support basique d'Android est proposé.

Pour une liste plus détaillée des nouvelles fonctionnalités de Qt 5.2, consultez la page des nouvelles fonctionnalités sur le wiki du projet Qt.

Qt Creator 3.0


Qt 5.2 sera distribué avec une nouvelle version de Qt Creator, la 3.0. Qt Creator 3.0 Beta est sorti en même temps que Qt 5.2 beta et est inclus dans les paquets binaires de Qt 5.2 Beta. Cette nouvelle version de Qt Creator améliore le support d'Android, propose un support expérimental d'iOS et un nettoyage de l'API des plug-ins, en plus d'améliorer le support de lldb, le débogueur associé au compilateur Clang.

Des installateurs pour Qt 5.2 Beta sont maintenant disponibles pour Windows, OS X et Linux. Vous pouvez dès maintenant télécharger cette version beta depuis l'espace téléchargements du projet Qt.

Article original : Qt 5.2 Beta Available
  Discussion forum
20 commentaires
  • arnolddumas
    Rédacteur/Modérateur
    Effectivement j'ai trouvé un bogue similaire sur le Jira : https://bugreports.qt-project.org/br...se/QTBUG-34412.
    Apparemment il a été corrigé depuis. Tu devrais réessayer avec les toutes dernières snapshots pour voir : http://download.qt-project.org/snaps...2/5.2.0-beta1/.
  • Bestel74
    Membre confirmé
    Très bonne nouvelle !

    J'espère qu'ils auront bien débogué les QDialog et les Menus déroulants sur Android et tous les autres trucs que j'ai pas vu !!

    Les QTimer qui s’arrêtent quand la vu n'est pas active c'est un peu relou aussi, mais là c'est pas de leur faute ils ne sont pas magicien non plus
  • ced01170
    Membre à l'essai
    Et toujours pas de support du module QtSerialPort pour Android
  • Jbx 2.0b
    Membre chevronné
    J'viens de tester la beta 5.2 et malheureusement mon moteur 3D et les exemples OpenGL crashent au démarrage sur androïd, alors que je n'avais pas de soucis en Qt 5.1.x.
    J'aimerai savoir si d'autres personnes ont ce soucis (par exemple en essayant d'exécuter l'exemple "Cube OpenGL ES 2.0" ? J'essayerai de confirmer ça sur une autre machine ce soir.
  • Jbx 2.0b
    Membre chevronné
    Ah cool, merci de l'info
  • arnolddumas
    Rédacteur/Modérateur
    Petite erreur, le lien pour télécharger les RC est celui-ci : http://download.qt-project.org/snaps...5.2/5.2.0-rc1/
  • Jbx 2.0b
    Membre chevronné
    Je me permet de poster ici avant d'ouvrir un éventuel bug, si quelqu'un peu vérifier qu'il obtient bien le même comportement.

    Je m'explique : j'essaye de changer la version d'OpenGL de la 4.4 vers la 4.2 (avec pour objectif d'utiliser NSight qui ne fonctionne pas avec OpenGL > 4.2), ce qui provoque chez moi l'absence de tout affichage OpenGL (le glClearColor semble fonctionner mais ensuite rien n'est affiché). Je n'ai aucun message d'erreur particulier.

    A noter que je suis sous visual studio 2012 avec Qt 5.2 RC1 version OpenGL x86/x64, et que je compile en x64. Je n'ai pas pu essayer sur QtCreator car j'ai pour l'instant une version Androïd, qui quand je compile en Desktop est en version 2.1.2 (Il me semble que c'est Angle derrière donc ça me parait cohérent).

    Pour changer de version rien de plus simple, par exemple à la création d'un QGLWidget :

    Code :
    1
    2
    3
    QGLFormat format;
    format.setVersion(4, 2); // major, minor
    QGLWidget* pGLWidget = new QGLWidget(format);
  • Nihilivin
    Membre régulier
    Bonjour à tous!
    Personnellement, je suis désespérément à la recherche de tuto pour m'expliquer comment créer un projet IOS/android, comment configurer le kit Android, etc etc... Et je trouve pas. A savoir que j'ai pas réussit à compiler sur mon simulateur IOS... Bref, apparemment c'est très bien mais.... Je nage TT