IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Viadeo Twitter Facebook Share on Google+   
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

Les nouveautés de Qt 4.7

Qt 4.7 contient de nombreuses nouveautés et améliorations par rapport aux versions précédentes de la série Qt 4. Ce document décrit les fonctionnalités les plus importantes de cette version, divisées en catégories.

Vous pouvez trouver une liste des autres fonctionnalités de Qt 4 dans la page Les nouveautés de Qt 4.

Le développement déclaratif d'interfaces utilisateur avec Qt Quick

image

Qt 4.7 introduit Qt Quick, le Qt UI Creation Kit (c'est-à-dire kit de création d'interfaces utilisateur Qt), qui permet la création d'interfaces utilisateur dynamiques plus facilement et plus efficacement qu'avec les technologies existantes. Qt Quick est composé de trois technologies.

  • QML est un langage déclaratif basé sur JavaScript tirant parti des capacités des méta-objets de Qt. Il a pour objectif de permettre une collaboration étroite entre designers et développeurs pour la création d'interfaces animées et fluides, en utilisant les connaissances existantes en design et en langages de scripts.
  • QtDeclarative est une bibliothèque C++ qui fournit le moteur sous-jacent transcrivant les descriptions déclaratives de l'interface QML en éléments d'une QGraphicsScene. La bibliothèque fournit également des API pour rendre des types C++ personnalisés accessibles à QML et pour connecter l'interface utilisateur en QML avec une logique applicative écrite en C++.
  • Qt Creator gère maintenant l'édition interactive d'interfaces utilisateur QML par des glisser-déposer. L'éditeur de texte reconnaît la syntaxe QML et fournit une assistance à l'écriture sous forme d'auto-complétion, d'accès aux descriptions d'erreurs et à l'aide, et de prévisualisation facile des écrans QML. Ces fonctionnalités Qt Quick dans Qt Creator seront livrées avec Qt Creator 2.1.

Gestion de l'accès au réseau

La gestion de l'accès au réseau (Bearer Management) contrôle l'état de connectivité du système. La nouvelle API Bearer Management du module QtNetwork permet à l'application de savoir si le système est connecté ou non et combien d'interfaces existent, ainsi que de démarrer ou d'arrêter des interfaces ou de changer de point d'accès de façon transparente.

QNetworkAccessManager utilise cette API pour le roaming (changement de réseau) au niveau de la couche HTTP.

La classe QGraphicsWebView utilise un nouveau stockage interne subdivisé, ce qui améliore les performances de zoom et de défilement. Vous pouvez même créer des effets de zoom animés avant ou arrière (voir QWebSettings::TiledBackingStoreEnabled).

Sur les plateformes mobiles, il est souvent souhaitable d'éviter d'afficher des barres de défilement séparées pour les iframes et les framesets. Si vous activez la fusion des frames, QtWebKit va redimensionner les frames à la taille de leur contenu pour éviter les barres de défilement séparées (voir QWebSettings::FrameFlatteningEnabled).

Qt 4.7 ajoute la gestion de l'accélération de la composition, ce qui améliore les performances des animations et transitions CSS. Plus d'informations sur ce blog.

Pour les projets hybrides QtWebKit et C++, Qt 4.7 ajoute le transport de QPixmaps entre le C++ Qt et WebKit. Nous avons aussi amélioré la documentation du développement hybride. Plus d'informations ici : la passerelle QtWebKit.

Tests de performance pour QtWebKit

Nous avons introduit un ensemble de tests de performance pour QtWebKit et amélioré les performances de rendu, de chargement de pages, de défilement et les performances CSS. Voici des exemples de résultats de tests sur une station Linux 64 bits avec le système graphique raster.

Un test mesurant les performances de défilement sur des sites populaires a montré que Qt 4.7.0 était 350 % plus rapide que Qt 4.6.0 sur cette plateforme, grâce aux améliorations des fonctions de rendu.

Notre test de chargement de page montre une amélioration de 16 % de Qt 4.7.0 par rapport à Qt 4.6.0. Cette différence est due à des améliorations de la vitesse d'affichage du texte, du décodage d'images, du chargement de ressources et de la gestion d'événements.

Plusieurs tests de performance des animations CSS montrent une vitesse en hausse de 31 % entre Qt 4.6.0 et Qt 4.7.0. Ces tests démontrent les gains obtenus grâce à l'accélération de la composition (voir ci-dessus).

Autres améliorations de performances

En dehors du module QtWebKit, pour cette version 4.7 les performances de l'ensemble du framework ont été une préoccupation centrale. Voici quelques exemples d'améliorations relatives aux performances.

Sur Mac OS X, Qt utilise maintenant une implémentation différente des widgets (appelée « alien widgets »), qui améliore la réactivité des applications ayant des interfaces utilisateur complexes avec plusieurs widgets.

Qt 4.7 introduit la classe QStaticText, qui peut être utilisée pour augmenter les performances de rendu de textes. Vous trouverez plus d'informations dans ce blog.

La classe QPainter dispose d'une nouvelle API pour le rendu de fragments de pixmap (QPainter::drawPixmapFragments), qui peut améliorer les performances de rendu des applications qui doivent afficher des fragments de pixmap.

Qt 4.7 contient une mise à jour du moteur JavaScriptCore pour le module QtScript, qui augmente la vitesse d'exécution de JavaScript.

Nouvelles classes, fonctions, macros, etc.

Liens vers les nouvelles classes, fonctions, macros et autres éléments introduits dans Qt 4.7 ;

Nouvelles Classes

D QDeclarativeComponent QDeclarativeContext QDeclarativeEngine QDeclarativeError QDeclarativeExpression QDeclarativeExtensionPlugin QDeclarativeImageProvider QDeclarativeItem QDeclarativeListProperty QDeclarativeListReference QDeclarativeNetworkAccessManagerFactory QDeclarativeParserStatus QDeclarativeProperty QDeclarativePropertyMap QDeclarativeScriptString QDeclarativeView

E QElapsedTimer

G QGLBuffer

N QNetworkConfiguration QNetworkConfigurationManager QNetworkSession

S QScriptProgram

Nouvelles fonctions membres

Classe QWebFrame:

void scrollToAnchor ( const QString & anchor )

Classe QAuthenticator:

QVariant option ( const QString & opt ) const
QVariantHash options () const
void setOption ( const QString & opt, const QVariant & value )

Classe QAudioFormat:

int channelCount () const
int sampleRate () const
void setChannelCount ( int channels )
void setSampleRate ( int samplerate )

Classe QGLShader:

bool hasOpenGLShaders ( ShaderType type, const QGLContext * context = 0 )

Classe QGLShaderProgram:

GLenum geometryInputType () const
GLenum geometryOutputType () const
int geometryOutputVertexCount () const
int maxGeometryOutputVertices () const
void setAttributeArray ( int location, GLenum type, const void * values, int tupleSize, int stride = 0 )
void setAttributeArray ( const char * name, GLenum type, const void * values, int tupleSize, int stride = 0 )
void setAttributeBuffer ( int location, GLenum type, int offset, int tupleSize, int stride = 0 )
void setAttributeBuffer ( const char * name, GLenum type, int offset, int tupleSize, int stride = 0 )
void setGeometryOutputType ( GLenum outputType )
void setGeometryOutputVertexCount ( int count )
void setUniformValeur ( int location, const GLfloat[2][2] value )
void setUniformValeur ( int location, const GLfloat[3][3] value )
void setUniformValeur ( const char * name, const GLfloat[2][2] value )
void setUniformValeur ( const char * name, const GLfloat[3][3] value )

Classe QGraphicsScale:

void xScaleChanged ()
void yScaleChanged ()
void zScaleChanged ()

Classe QFileSystemModel:

void directoryLoaded ( const QString & path )

Classe QState:

QList<QAbstractTransition *> transitions () const

Classe QPlainTextEdit:

QString anchorAt ( const QPoint & pos ) const

Classe QAudioDeviceInfo:

QList<int> supportedChannelCounts () const
QList<int> supportedSampleRates () const

Classe QNetworkRequest:

Priority priority () const
void setPriority ( Priority priority )

Classe QGraphicsItem:

void updateMicroFocus ()

Classe QGraphicsObject:

void updateMicroFocus ()

Classe QIconEngineV2:

QString iconName ()

Classe QDBusMessage:

bool autoStartService () const
void setAutoStartService ( bool enable )

Classe QNetworkAccessManager:

QNetworkConfiguration activeConfiguration () const
QNetworkConfiguration configuration () const
NetworkAccessibility networkAccessible () const
QNetworkReply * sendCustomRequest ( const QNetworkRequest & request, const QByteArray & verb, QIODevice * data = 0 )
void setConfiguration ( const QNetworkConfiguration & config )
void setNetworkAccessible ( NetworkAccessibility accessible )

Classe QWizard:

void pageAdded ( int id )
void pageRemoved ( int id )
void setSideWidget ( QWidget * widget )
QWidget * sideWidget () const

Classe QScriptEngine:

QScriptValeur evaluate ( const QScriptProgram & program )
void reportAdditionalMemoryCost ( int size )

Nouvelles fonctions globales

uint qHash ( const QUrl & url )

Nouveaux éléments QML

A AnchorAnimation AnimatedImage Animation

B Behavior Binding BorderImage

C ColorAnimation Column Component Connections

F Flickable Flipable Flow FocusPanel FocusScope FontLoader

G Gradient GradientStop Grid GridView

I Image Item

K KeyEvent KeyNavigation Keys

L LayoutItem ListElement ListModel ListView Loader

M QML:QtObject MouseArea MouseEvent

N NumberAnimation

P ParallelAnimation ParentAnimation ParticleMotionGravity ParticleMotionLinear ParticleMotionWander Particles Path PathAttribute PathCubic PathElement PathLine PathPercent PathQuad PathView PauseAnimation PropertyAction PropertyAnimation PropertyChanges

R Rectangle Repeater Rotation RotationAnimation Row

S Scale ScriptAction SequentialAnimation SmoothedAnimation SpringAnimation State StateGroup SystemPalette

T Text TextEdit TextInput Timer Transform Transition Translate

V Vector3dAnimation VisualItemModel

W WebView

X XmlListModel

Remerciements

Merci à Ilya Diallo pour la traduction et à Jonathan Courtois, Claude Leloup, Jacques Thery et Thibaut Cuvelier 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 !