QPluginLoaderLa classe QPluginLoader charge un plu-gin � l'ex�cution. Plus d'informations... #include <QPluginLoader> Voir la position dans l'arbre des classes. H�ritageH�rite de QObject. Description d�taill�eLa classe QPluginLoader charge un plug-in � l'ex�cution. Cette classe fournit un acc�s � un plug-in Qt. Un plug-in Qt est stock� dans une biblioth�que partag�e (une DLL, un SO, un DYLIB) et offre ces quelques b�n�fices aux biblioth�ques charg�es par l'interm�diaire de QLibrary :
Une instance d'un objet QPluginLoader ne s'occupe que d'un fichier de biblioth�que partag�e, que l'on appelle un plug-in. Elle permet d'acc�der aux fonctionnalit�s du plug-in sans se soucier de la plateforme. Pour sp�cifier quel plug-in charger, passer soit un nom de fichier dans le constructeur, soit le modifier avec setFileName(). Les fonctions les plus importantes sont load() pour le chargement dynamique d'un fichier de plug-ins, isLoaded() pour v�rifier que le chargement s'est bien effectu� et instance() pour acc�der au composant de base du plug-in. Cette derni�re fonction essaye implicitement de charger le plug-in si ce n'est pas encore fait. Plusieurs instances de la classe peuvent �tre utilis�es pour acc�der � un m�me plug-in physique. D�s qu'il est charg�, le plug-in reste en m�moire jusqu'� ce que toutes les instances de QPluginLoader soient supprim�es, ou bien jusqu'� la fin de l'application. Vous pouvez essayer de d�charger un plug-in avec unload(), mais si d'autres instances de QPluginLoader utilisent encore la m�me biblioth�que, l'appel �chouera et le d�chargement ne sera effectif que lorsque toutes les instances auront appel� cette fonction. Juste avant qu'il ne soit d�charg�, le composant principal sera �galement supprim�. Pour acc�l�rer le chargement et la validation des plug-ins, certaines informations collect�es au chargement sont mises en cache dans la m�moire persistante (gr�ce � QSettings). Par exemple, le r�sultat d'une op�ration de chargement (succ�s ou �chec) est stock� dans ce cache : les chargements subs�quents �choueront sur un plug-in invalide. Cependant, si la date de modification d'un plug-in a chang�, l'entr�e du cache est invalid�e et mise � jour avec l'op�ration de chargement. Ceci signifie aussi que la date doit �tre mise � jour � chaque fois qu'un plug-in est mis � jour, ainsi que les ressources d�pendantes (comme une autre biblioth�que partag�e), vu que ces ressources peuvent influencer le chargement. Regardez Comment cr�er des plugins Qt pour plus d'informations sur la mani�re d'�tendre votre application avec des plug-ins. Notez que QPluginLoader ne peut pas �tre utilis�e si vous liez votre application statiquement � Qt. Dans ce cas, vous devrez aussi lier vos plug-ins statiquement. Vous pouvez utiliser QLibrary si vous devez charger des biblioth�ques partag�es dans une application li�e statiquement. Note : sur Symbian, les fichiers stub du plug-in doivent �tre utilis�s lorsqu'un chemin vers le plug-in est n�cessaire. Dans le cas du chargement de plug-ins, les stubs peuvent �tre consid�r�s comme ayant le m�me nom que le binaire de l'actuel plug-in. En pratique, ils ont l'extension ».qtplugin » � la place de ».dll », mais ces diff�rences sont g�r�es de fa�on transparente par QPluginLoader et QLibrary pour �viter d'avoir � g�rer des besoins sp�cifiques au plug-in de Symbian dans la plupart des applications Qt. Les stubs des plug-ins sont n�cessaires �tant donn� que la plateforme de s�curit� de Symbian emp�che tout acc�s au r�pertoire o� le binaire du plug-in actuel est localis�. Voir aussi QLibrary et l'exemple Plug & Paint. Propri�t�sfileName : QStringCette propri�t� stocke le nom de fichier du plug-in. Pour �tre chargeable, l'extension doit �tre valide pour la plateforme (.so sur UNIX, .dylib sur Mac OS X et .dll sur Windows). Elle peut �tre v�rifi�e avec QLibrary::isLibrary(). Si le fichier n'existe pas, il ne sera pas stock� et cette propri�t� contiendra donc une cha�ne de caract�res vide. Par d�faut, cette propri�t� contient une cha�ne de caract�res vide. Note : sur Symbian, fileName doit pointer sur un fichier stub du plug-in. Fonctions d'acc�sQString fileName () const Voir aussi load(). loadHints : QLibrary::LoadHintsCette propri�t� donne quelques indices sur la mani�re dont load() devrait se comporter. Vous pouvez donner des indications sur la mani�re dont les symboles du plug-in sont r�solus. Par d�faut, aucune indication n'est d�finie. Voir la documentation de QLibrary::loadHints pour une description compl�te sur la fa�on dont cette propri�t� fonctionne. Cette propri�t� a �t� introduite dans Qt 4.4. Fonctions d'acc�sQLibrary::LoadHints loadHints () const Voir aussi QLibrary::loadHints. Fonctions membresQPluginLoader::QPluginLoader ( QObject * parent = 0 )Construit un chargeur de plug-in avec le parent fourni. QPluginLoader::QPluginLoader ( const QString & fileName, QObject * parent = 0 )Construit un chargeur de plug-in avec le parent fourni qui chargera le fichier filename sp�cifi�. Pour �tre chargeable, l'extension doit �tre valide pour la plateforme (.so sur UNIX, .dylib sur Mac OS X et .dll sur Windows). Elle peut �tre v�rifi�e avec QLibrary::isLibrary(). Note : sur Symbian, fileName doit pointer sur un fichier stub du plug-in. Voir aussi setFileName(). QPluginLoader::~QPluginLoader ()D�truit l'objet QPluginLoader. � moins que unload() n'ait �t� appel�e explicitement, le plug-in reste en m�moire jusqu'� la fin de l'application. Voir aussi isLoaded() et unload(). QString QPluginLoader::errorString () constRetourne une cha�ne de caract�res avec la description de la derni�re erreur. Cette fonction a �t� introduite dans Qt 4.2. QObject * QPluginLoader::instance ()Retourne l'objet racine du plug-in, charg� si n�cessaire. La fonction retourne 0 si le plug-in ne peut �tre charg�, ou si l'objet racine ne peut �tre instanci�. Si l'objet racine a �t� supprim�, cette fonction le recr�e. Le composant racine, retourn� par cette fonction, n'est pas supprim� quand le QPluginLoader est d�truit. Si vous voulez vous en assurer, vous devriez appeler unload() d�s que vous n'en avez plus besoin. Quand la biblioth�que est finalement d�charg�e, le composant principal sera automatiquement d�truit. L'objet retourn� est un QObject. Utilisez qobject_cast() pour acc�der aux interfaces qui vous int�ressent. Voir aussi load(). bool QPluginLoader::isLoaded () constRetourne true si le plug-in est charg�, false sinon. Voir aussi load(). bool QPluginLoader::load ()Charge le plug-in et retourne true s'il a �t� charg� correctement ; sinon retourne false. Vu que instance() appelle toujours cette fonction avant la r�solution de symboles, il n'est pas n�cessaire de l'appeler explicitement. Dans certaines situations, vous pourriez vouloir charger le plug-in en avance, auquel cas vous pourriez utiliser cette fonction. Voir aussi unload(). QObjectList QPluginLoader::staticInstances () [static]Retourne une liste d'instances statiques du plug-in (objet racine) d�tenues par le chargeur. bool QPluginLoader::unload ()D�charge le plug-in et retourne true si le plug-in peut �tre d�charg�, sinon false. Cela arrive automatiquement � la fermeture de l'application, vous ne devriez donc pas appeler cette fonction. Si d'autres instances de QPluginLoader utilisent toujours le m�me plug-in, l'appel �chouera, et le d�chargement n'aura lieu que lorsque toutes les instances auront appel� unload(). N'essayez pas de supprimer l'objet racine. Reposez-vous sur le fait qu'il sera supprim� automatiquement d�s que cela sera n�cessaire. Voir aussi instance() et load(). En relation mais non membres de la classevoid qRegisterStaticPluginInstanceFunction ( QtPluginInstanceFunction function )Enregistre la fonction function donn�e avec le chargeur de plug-in. Cette fonction a �t� introduite dans Qt 4.4. RemerciementsMerci � Thibaut Cuvelier pour la traduction et � Jonathan Courtois, Thibaut Cuvelier 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 © 2025 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 ! |