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  · 

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 !

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 © 2021 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, 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 !