Performances QMLItems opaquesLes Items cachés derrière un Item opaque entrainent un coût. Si un Item est entièrement caché par un Item opaque, mettez son opacité à 0. Un exemple courant est quand une page « détails » est affichée par-dessus une vue de l'application. Clippingclip est défini à false par défaut. Autorisez le clipping seulement si c'est nécessaire. Ancres vs liensIl est plus efficace d'utiliser les ancres (anchors) plutôt que les liens (binding) pour positionner relativement les objets les uns par rapport aux autres. Examinez cette utilisation des liens pour positionner rect2 relativement à rect1 : Rectangle { id: rect1 x: 20 width: 200; height: 200 } Rectangle { id: rect2 x: rect1.x y: rect1.y + rect1.height width: rect1.width - 20 height: 200 } C'est accompli plus efficacement en utilisant les ancres : Rectangle { id: rect1 x: 20 width: 200; height: 200 } Rectangle { id: rect2 height: 200 anchors.left: rect1.left anchors.top: rect1.bottom anchors.right: rect1.right anchors.rightMargin: 20 } ImagesLes images consomment une grande partie de la mémoire et peuvent également être lourdes à charger. Pour traiter de grandes images efficacement, il est recommandé de définir la propriété Image::sourceSize avec une taille non supérieure à celle nécessaire au rendu. Attention car le changement de sourceSize va causer le rechargement de l'image. Les images sur le système de fichier local sont habituellement chargées de façon synchrone. C'est le comportement généralement désiré pour les éléments de l'interface utilisateur. Cependant pour les grandes images qui ne doivent pas être forcément visibles immédiatement, définissez la propriété Image::asynchronous à true. L'image sera chargée dans un processus à basse priorité. Délégués de vueLes délégués doivent être créés rapidement quand la vue est affichée. Il y a deux aspects importants pour maintenir une vue agréable.
Images en ressource plutôt que compositionSi possible, fournir une ressource image unique, plutôt que d'utiliser la composition d'un certain nombre d'éléments. Par exemple, un cadre avec une ombre pourrait être créé à l'aide d'un Rectangle placé sur une Image qui dessine l'ombre. Il est plus efficace de fournir une image qui inclut le cadre et l'ombre. Limitez le JavaScriptÉvitez d'utiliser JavaScript pendant les animations. Par exemple, exécuter une expression JavaScript complexe pour chaque image de l'animation de la propriété x. RenduSouvent, l'utilisation de différents systèmes graphiques donnera des performances supérieures au système graphique natif (c'est en particulier le cas de X11). Cela peut être configuré en utilisant QApplication::setGraphicsSystem() ou via la ligne de commande utilisant le commutateur -graphicssystem. Vous pouvez activer l?accélération OpenGL en utilisant le système graphique opengl ou en définissant un QGLWidget en tant que zone d'affichage de votre QDeclarativeView. Vous devrez essayer des options variées pour trouver ce qui fonctionne le mieux pour votre application. Pour le matériel embarqué basé sur X11, une combinaison recommandée est d'utiliser le système graphique natif avec un QGLWidget pour la zone d'affichage. Alors que cela ne garantit pas les meilleures performances dans tous les cas, cela offre de bonnes performances pour chaque cas. Au contraire, utiliser seulement le moteur de dessin natif devrait donner de bonnes performances pour quelques parties de votre application et de faibles performances ailleurs. Le QML Viewer utilise le système graphique natif par défaut pour X11 et OS X. Il inclut également une ligne de commande -opengl qui définit un QGLWidget en tant que zone d'affichage de la vue. Sur OS X, un QGLWidget est toujours utilisé. RemerciementsMerci à Emmanuel Di Clemente pour la traduction ainsi qu'à Dimitry Ernot, Jonathan Courtois et Claude Leloup pour leur relecture ! |
Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. | Qt 4.7 | |
Copyright © 2024 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD. | ||
Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP ! |