Viadeo Twitter Google Bookmarks ! Facebook Digg del.icio.us MySpace Yahoo MyWeb Blinklist Netvouz Reddit Simpy StumbleUpon Bookmarks Windows Live Favorites 
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

QUiLoader

La classe QUiLoader permet aux applications autonomes de créer de façon dynamique des interfaces utilisateurs au cours de l'exécution en utilisant les informations stockées dans des fichiers UI ou spécifiées dans les chemins de plug-ins. Plus d'informations...

#include <QUiLoader>

Voir la position dans l'arbre des classes.

Héritage

Hérite de QObject.

Description détaillée

La classe QUiLoader permet aux applications autonomes de créer de façon dynamique des interfaces utilisateurs au cours de l'exécution en utilisant les informations stockées dans des fichiers UI ou spécifiées dans les chemins de plug-ins.

De plus, vous pouvez personnaliser ou créer votre propre interface utilisateur en dérivant votre propre classe de chargement.

Si vous avez un composant personnalisé ou une application qui embarque Qt Designer, vous pouvez aussi utiliser la classe QFormBuilder fournie par le module QtDesigner pour créer des interfaces utilisateurs depuis des fichiers UI.

La classe QUiLoader fournit une collection de fonctions vous permettant de créer des widgets basés sur les informations stockées dans les fichiers UI (créés avec Qt Designer) ou disponibles dans les chemins de plug-ins spécifiés. Ils peuvent être récupérés en utilisant la fonction pluginPaths(). De la même façon, le contenu d'un fichier UI peut être récupéré en utilisant la fonction load(). Par exemple :

 MyWidget::MyWidget(QWidget *parent)
     : QWidget(parent)
 {
     QUiLoader loader;
     QFile file(":/forms/myform.ui");
     file.open(QFile::ReadOnly);
     QWidget *myWidget = loader.load(&file, this);
     file.close();
 
     QVBoxLayout *layout = new QVBoxLayout;
     layout->addWidget(myWidget);
     setLayout(layout);
 }

En incluant l'interface utilisateur dans le fichier de ressource (myform.qrc), nous nous assurons qu'il sera présent au cours de l'exécution :

 <!DOCTYPE RCC><RCC version="1.0">
 <qresource prefix="/forms">
 <file>myform.ui</file>
 </qresource>
 </RCC>

La fonction availableWidgets() retourne une QStringList avec les noms des classes des widgets disponibles dans les chemins de plug-ins spécifiés. Pour créer ces widgets, il suffit d'utiliser la fonction createWidget(). Par exemple :

 QWidget *loadCustomWidget(QWidget *parent)
 {
     QUiLoader loader;
     QWidget *myWidget;
 
     QStringList availableWidgets = loader.availableWidgets();
 
     if (availableWidgets.contains("AnalogClock"))
         myWidget = loader.createWidget("AnalogClock", parent);
 
     return myWidget;
 }

Pour réaliser un widget personnalisé disponible dans le chargeur, vous pouvez utiliser la fonction addPluginPath() ; pour supprimer tous les widgets disponibles, vous pouvez appeler la fonction clearPluginPaths().

Les fonctions createAction(), createActionGroup(), createLayout() et createWidget() sont systématiquement utilisées par la classe QUiLoader en interne pour créer respectivement une action, un groupe d'actions, un layout ou un widget. Pour cette raison, vous pouvez réaliser une sous-classe de QUiLoader et réimplémenter ces fonctions qui interviennent dans le processus de construction de l'interface utilisateur. Par exemple, vous pouvez désirer obtenir une liste des actions créées lors du chargement du formulaire ou créer un widget personnalisé.

Pour un exemple complet utilisant la classe QUiLoader, voir l' exemple du constructeur de calculatrice.

Voir aussi QtUiTools et QFormBuilder.

Fonctions membres

QUiLoader::QUiLoader ( QObject * parent = 0 )

Crée un chargeur de formulaire avec le parent donné.

QUiLoader::~QUiLoader () [virtual]

Détruit le chargeur.

void QUiLoader::addPluginPath ( const QString & path )

Ajoute le chemin path à la liste des chemins dans lequel le chargeur devra chercher lors de la localisation de plug-ins.

Voir aussi pluginPaths() et clearPluginPaths().

QStringList QUiLoader::availableLayouts () const

Retourne une liste nommant tous les layouts disponibles qui peuvent être construits en utilisant la fonction createLayout().

Cette fonction a été introduite dans Qt 4.5.

Voir aussi createLayout().

QStringList QUiLoader::availableWidgets () const

Retourne une liste nommant tous les widgets disponibles qui peuvent être construits en utilisant la fonction createWidget(), c'est-à-dire tous les widgets spécifiés au sein des chemins de plug-ins.

Voir aussi pluginPaths() et createWidget().

void QUiLoader::clearPluginPaths ()

Vide la liste des chemins dans laquelle le chargeur cherchera au cours de la localisation des plug-ins.

Voir aussi addPluginPath() et pluginPaths().

QAction * QUiLoader::createAction ( QObject * parent = 0, const QString & name = QString() ) [virtual]

Crée une nouvelle action avec les données parent et name.

La fonction est également utilisée en interne par la classe QUiLoader à chaque fois qu'un widget est créé. Par conséquent, vous pouvez réaliser une sous-classe de QUiLoader et réimplémenter cette fonction pour intervenir dans le processus de construction d'une interface utilisateur ou d'un widget. Cependant, dans votre implémentation, veillez à ce que vous appeliez la première version de QUiLoader.

Voir aussi createActionGroup(), createWidget() et load().

QActionGroup * QUiLoader::createActionGroup ( QObject * parent = 0, const QString & name = QString() ) [virtual]

Crée une nouvelle action de groupe avec les données parent et name.

La fonction est également utilisée en interne par la classe QUiLoader à chaque fois qu'un widget est créé. Par conséquent, vous pouvez réaliser une sous-classe de QUiLoader et réimplémenter cette fonction pour intervenir dans le processus de construction d'une interface utilisateur ou d'un widget. Cependant, dans votre implémentation, veillez à ce que vous appeliez la première version de QUiLoader.

Voir aussi createAction(), createWidget() et load().

QLayout * QUiLoader::createLayout ( const QString & className, QObject * parent = 0, const QString & name = QString() ) [virtual]

Crée un nouveau layout avec les données parent et name en utilisant la classe spécifiée par className.

La fonction est également utilisée en interne par la classe QUiLoader à chaque fois qu'un widget est créé. Par conséquent, vous pouvez réaliser une sous-classe de QUiLoader et réimplémenter cette fonction pour intervenir dans le processus de construction d'une interface utilisateur ou d'un widget. Cependant, dans votre implémentation, veillez à ce que vous appeliez la première version de QUiLoader.

Voir aussi createWidget() et load().

QWidget * QUiLoader::createWidget ( const QString & className, QWidget * parent = 0, const QString & name = QString() ) [virtual]

Crée un nouveau widget avec les données parent et name en utilisant la classe spécifiée par className. Vous devez utiliser cette fonction pour créer un des widgets retournés par la fonction availableWidgets().

La fonction est également utilisée en interne par la classe QUiLoader à chaque fois qu'un widget est créé. Par conséquent, vous pouvez réaliser une sous-classe de QUiLoader et réimplémenter cette fonction pour intervenir dans le processus de construction d'une interface utilisateur ou d'un widget. Cependant, dans votre implémentation, veillez à ce que vous appeliez la première version de QUiLoader.

Voir aussi availableWidgets() et load().

bool QUiLoader::isLanguageChangeEnabled () const

Retourne true si l'option de traduction dynamique sur un changement de langue est activée ; sinon retourne false.

Cette fonction a été introduite dans Qt 4.5.

Voir aussi setLanguageChangeEnabled().

QWidget * QUiLoader::load ( QIODevice * device, QWidget * parentWidget = 0 )

Charge un formulaire depuis le périphérique device et crée un nouveau widget avec le parent parentWidget pour détenir son contenu.

Voir aussi createWidget().

QStringList QUiLoader::pluginPaths () const

Retourne une liste nommant les chemins de plug-ins dans laquelle le chargeur cherchera lors de la localisation de widgets personnalisés.

Voir aussi addPluginPath() et clearPluginPaths().

void QUiLoader::setLanguageChangeEnabled ( bool enabled )

Si enabled vaut true, les interfaces utilisateurs chargées par ce chargeur se traduiront à nouveau automatiquement lors de la réception d'un événement de changement de langue. Sinon, les interfaces utilisateurs ne se traduiront pas de nouveau.

Cette fonction a été introduite dans Qt 4.5.

Voir aussi isLanguageChangeEnabled().

void QUiLoader::setWorkingDirectory ( const QDir & dir )

Définit le répertoire de travail du chargeur à dir. Le chargeur cherchera d'autres ressources, telles que des icônes et des fichiers de ressources, dans les chemins relatifs de ce répertoire.

Voir aussi workingDirectory().

QDir QUiLoader::workingDirectory () const

Retourne le répertoire de travail du chargeur.

Voir aussi setWorkingDirectory().

Remerciements

Merci à Abdelhafid Hafidi pour la traduction et à Jonathan Courtois ainsi qu'à Jacques Thery pour leur relecture !

Publicité

Best Of

Actualités les plus lues

Semaine
Mois
Année
  1. Les développeurs détestent-ils les antivirus ? Un programmeur manifeste sa haine envers ces solutions de sécurité 23
  2. «Le projet de loi des droits du développeur» : quelles conditions doivent remplir les entreprises pour que le développeur puisse réussir ? 46
  3. Une nouvelle ère d'IHM 3D pour les automobiles, un concept proposé par Digia et implémenté avec Qt 3
  4. Qt Creator 2.5 est sorti en beta, l'EDI supporte maintenant plus de fonctionnalités de C++11 2
  5. PySide devient un add-on Qt et rejoint le Qt Project et le modèle d'open gouvernance 1
  6. Vingt sociétés montrent leurs décodeurs basés sur Qt au IPTV World Forum, en en exploitant diverses facettes (déclaratif, Web, widgets) 0
  7. Thread travailleur avec Qt en utilisant les signaux et les slots, un article de Christophe Dumez traduit par Thibaut Cuvelier 1
  1. « Quelque chose ne va vraiment pas avec les développeurs "modernes" », un développeur à "l'ancienne" critique la multiplication des bibliothèques 94
  2. Apercevoir la troisième dimension ou l'utilisation multithreadée d'OpenGL dans Qt, un article des Qt Quarterly traduit par Guillaume Belz 0
  3. Pourquoi les programmeurs sont-ils moins payés que les gestionnaires de programmes ? Manquent-ils de pouvoir de négociation ? 50
  4. Les développeurs détestent-ils les antivirus ? Un programmeur manifeste sa haine envers ces solutions de sécurité 23
  5. «Le projet de loi des droits du développeur» : quelles conditions doivent remplir les entreprises pour que le développeur puisse réussir ? 46
  6. Quelles nouveautés de C++11 Visual C++ doit-il rapidement intégrer ? Donnez-nous votre avis 10
  7. Qt Commercial : Digia organise un webinar gratuit le 27 mars sur la conception d'interfaces utilisateur et d'applications avec le framework 0
Page suivante

Le Qt Developer Network au hasard

Logo

Installation de PySide : binaires et compilation

Le Qt Developer Network est un réseau de développeurs Qt anglophone, où ils peuvent partager leur expérience sur le framework. Lire l'article.

Communauté

Ressources

Liens utiles

Contact

  • Vous souhaitez rejoindre la rédaction ou proposer un tutoriel, une traduction, une question... ? Postez dans le forum Contribuez ou contactez-nous par MP ou par email (voir en bas de page).

Qt dans le magazine

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 © 2012 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 !
 
 
 
 
Partenaires

Hébergement Web