#1 Wed 20 December 2023 11:16
- pyjoubert
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Mar 2006
- Messages: 347
QGIS 3.28: Lancement QGIS et plugins (PYQGIS)
Bonjour,
Comment faire pour qu'au lancement de QGIS, je sois sûr que certains plugin soient chargés ?
S'ils ne sont pas chargés (cochés dans la liste), comment faire pour les charger automatiquement?
Merci de vos réponses et bonne journée, PYJ
Hors ligne
#2 Wed 20 December 2023 11:42
- YoLecomte
- Participant assidu
- Lieu: Epinal
- Date d'inscription: 7 Jul 2015
- Messages: 266
Re: QGIS 3.28: Lancement QGIS et plugins (PYQGIS)
Bonjour,
Pour le coup vous pouvez utiliser le startup.py
Code:
from qgis.PyQt.QtCore import QSettings packageName = 'YourPlugin' QSettings().setValue( "PythonPlugins/" + packageName, True )
Hors ligne
#3 Wed 20 December 2023 13:50
- pyjoubert
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Mar 2006
- Messages: 347
Re: QGIS 3.28: Lancement QGIS et plugins (PYQGIS)
Ca marche super,
Merci
PYJ
Hors ligne
#4 Wed 20 December 2023 13:58
- pyjoubert
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Mar 2006
- Messages: 347
Re: QGIS 3.28: Lancement QGIS et plugins (PYQGIS)
Je suis allé un peu trop vide dans ma réponse.
En effet, maintenant le plugin est coché, mais c'est pas pour autant qu'il se lance.
Il faut que je le décoche et que je le recoche pour qu'il soit disponible
PYJ
Hors ligne
#5 Wed 20 December 2023 14:09
- YoLecomte
- Participant assidu
- Lieu: Epinal
- Date d'inscription: 7 Jul 2015
- Messages: 266
Re: QGIS 3.28: Lancement QGIS et plugins (PYQGIS)
ca dépend de votre code. Il faut partager votre plugin. Qu'entendez vous par "se lance". Si vous voulez éxécuter du code à l'initialisation du plugin, vous pouvez le mettre dans la méthode initGui() qui est appelé pour ajouter le plugin a l'interface QGIS (icone, menu,...). Sinon vous pouvez aussi éxécuter du code directement dans le __init__() qui est appelé lors de l'instanciation du plugin.
Hors ligne
#6 Wed 20 December 2023 14:22
- pyjoubert
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Mar 2006
- Messages: 347
Re: QGIS 3.28: Lancement QGIS et plugins (PYQGIS)
Ce que je veux dire, c'est si je le coche moi-même, alors le plugin apparait bien dans le menu "Extension" et si je clique sur ce menu alors mon code s'exécute
Ensuite, je décoche le plugin et je quitte QGIS.
En relançant QGIS, le plugin est de nouveau coché (votre code fait effet) , mais il n'apparait pas pour autant dans le menu "Extensions" et donc mon code n'est pas disponible
PYJ
Dernière modification par pyjoubert (Wed 20 December 2023 14:23)
Hors ligne
#7 Wed 20 December 2023 14:47
- YoLecomte
- Participant assidu
- Lieu: Epinal
- Date d'inscription: 7 Jul 2015
- Messages: 266
Re: QGIS 3.28: Lancement QGIS et plugins (PYQGIS)
Je ne reproduis pas votre problème sur Windows QGIS 3.28.8.
L'ajout du plugin dans le menu doit se faire au niveau de la méthode initGui() de votre plugin. Est ce bien le cas?
Hors ligne
#8 Thu 21 December 2023 08:32
- pyjoubert
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Mar 2006
- Messages: 347
Re: QGIS 3.28: Lancement QGIS et plugins (PYQGIS)
Bonjour,
Afin de tester, je vous joins un plugin tout simple.
InitGui fait apparaitre un messeage 'INIT_GUI"
run fait apparaitre un message "RUN"
Si le pllugin est chargé (de la session précédente), alors à l'entrée de session, le message "INIT_GUI" apparait, le bouton "Go" apparait et le clic sur ce bouton fait apparaitre le messafe RUN
maintenant
je décoche le plugin Inisailisation session
Je sors de QGIS
Je relance QGIS (plus de message, normal)
J'exécute la ligne
Code:
QSettings().setValue("PythonPlugins/gl_initialisationsession", True )
Le plugin st coché mais aucun message et le bouton Go n'apparait pas
Je décoche et recoche dans la foulée le plugin et là, les message INIT_GUI apparait et le bouton aussi
J'espère que vous allez reproduire et trouver ce qu'il me manque
Merci encore et bonne journée
PYJ
Hors ligne
#9 Thu 21 December 2023 12:31
- YoLecomte
- Participant assidu
- Lieu: Epinal
- Date d'inscription: 7 Jul 2015
- Messages: 266
Re: QGIS 3.28: Lancement QGIS et plugins (PYQGIS)
Bonjour,
Qu'est ce que vous avez dans le startup.py?
Voici les étapes que je suis:
- j'installe votre plugin.
- J'ajoute un fichier startup.py dans mon dossier local QGIS qui contient le code suivant:
Code:
from qgis.PyQt.QtCore import QSettings packageName = 'gl_initialisationsession' QSettings().setValue( "PythonPlugins/" + packageName, True )
- Je lance QGIS --> j'ai la popup INIT_GUI
- Je décoche le plugin
- Je ferme QGIS
- Je lance QGIS --> j'ai la popup INIT_GUI
- Je click sur le bouton Go! --> j'ai la popup RUN
Le fichier startup.py doit etre stocké au niveau de votre répertoire local QGIS, au même niveau que le répertoire profiles (car il est commun a tous les profil)
-> sur Windows: C:\Users\YOURUSER\AppData\Roaming\QGIS\QGIS3\startup.py
Par ailleurs, en exécutant cette ligne à posteriori
Code:
QSettings().setValue("PythonPlugins/gl_initialisationsession", True )
Vous activez le plugin dans la base de Settings interne de QGIS, mais votre plugin n'est pas initialisé pour autant. Lors du démarrage, QGIS parcours la liste des plugins disponibles sur votre poste et initialise ceux qui sont activés (valeur à True) dans la base de settings. Il faut que cet appel (qui passe la valeur à True) soit fait avant que QGIS ne fasse cette opération. Cela est rendu possible grâce au code contenu dans le fichier startup.py.
Hors ligne
#10 Thu 21 December 2023 12:42
- pyjoubert
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Mar 2006
- Messages: 347
Re: QGIS 3.28: Lancement QGIS et plugins (PYQGIS)
En fait, j'ai ajouté les lignes non pas dans le fichier startup.py mais dans un fichier Lanceur.py que je passe à l'exécutable via l'option --code
Code:
"C:\Program Files\QGIS3\bin\qgis-ltr-bin.exe" --code "Q:\DATA\LSM\APIC\QGIS\USERS\SITPYJO\PRTDEV\Lanceur.py"
Dans une doc, j'ai vu qu'il y avait 3 manière d'initialiser QQIS
- soit par le fichier startup.py
- soit par l'option --code
- soit je crois par une variable d'environnement
J'essayerai avec strartup.py
Merci
Hors ligne
#11 Thu 21 December 2023 12:55
- pyjoubert
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Mar 2006
- Messages: 347
Re: QGIS 3.28: Lancement QGIS et plugins (PYQGIS)
J'ai donc ajouté les lignes dans le fichier startup.py
et je continue avec mon fichier Lanceur.py via l'option --code
C'est nickel
Merci encore ;-)
PYJ
Hors ligne