Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Wed 20 December 2023 11:16

pyjoubert
Participant assidu
Lieu: Lyon
Date d'inscription: 21 Mar 2006
Messages: 330

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: 239

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: 330

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: 330

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: 239

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: 330

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: 239

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: 330

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


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#9 Thu 21 December 2023 12:31

YoLecomte
Participant assidu
Lieu: Epinal
Date d'inscription: 7 Jul 2015
Messages: 239

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: 330

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: 330

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

 

Pied de page des forums

Powered by FluxBB