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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 06 February 2019 15:08

felixd
Participant occasionnel
Date d'inscription: 20 Jun 2017
Messages: 46

QGIS 3.4: PYQT5 multiPrint

Bonjour

multiprint est un outil que j'utilise très souvent.
3 projets QGIS avec 18 composeurs chacun a éditer en jpg.

Je me suis lancé le défi de le porter dans QGIS 3 et PYQT5.
Si la première partie avec 2to3.py c'est pas trop mal passé, je bloque sur la partie qui a le plus évoluer dans QGIS3, le composer.

activeComposer n'est pas reconnu et du coup ce code ne fonctionne pas:

Code:

    def populateComposerList(self):
        #called to populate field list for WHERE statement
        wdgt=self.dlg.composerList
        wdgt.clear()
        for cView in self.iface.activeComposers ():
            item=QListWidgetItem()
            item.setFlags(item.flags() | Qt.ItemIsUserCheckable)
            item.setCheckState(Qt.Unchecked)
            item.setText(cView.composerWindow().windowTitle())
            wdgt.addItem(item)
        wdgt.sortItems()

En fait, ma boite de dialogue s'ouvre, mais l'iteration sur les composeurs n'implémente cette boite de dialogue. De plus dans QGIS3 j'ai constaté que les composeurs (si on peut encore les appeler ainsi) ne s'ouvrent pas par défaut. 
J'ai bien vu sur internet qu'il fallait passer par QgisLayoutManager et la methode layout() mais pas moyen.

Je précise, je suis newbie en matière python, et il m'a semblé que ce travail serait un bon exercice.

Je recherche un maître, je veux bien faire le petit scarabée.

Merci par avance

Hors ligne

 

#2 Thu 07 February 2019 10:33

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3945

Re: QGIS 3.4: PYQT5 multiPrint

Bonjour,

self.iface.activeComposers () --> QgsProject.instance().layoutManager().layouts() (voir https://qgis.org/pyqgis/master/core/Qgs … ager.html)
cView.composerWindow().windowTitle() --> cView.name() (https://qgis.org/pyqgis/master/core/Qgs … rface.html)

multiprint est un outil que j'utilise très souvent.


Avez-vous regardé l'extension MapsPrinter? Il fait la même chose que multiprint, en mieux mais sans aucune objectivité de ma part. Il ne fait pas encore les rapports ni n'a intégré les nouveaux paramétrages des étiquettes en export pdf et je ne pense pas avoir le temps de me pencher sur ces intégrations dans un avenir proche donc si vous voulez vous essayer à tripatouiller ce plugin, je ne dis pas non. Le seul hic est que je suis moi-même béotien dans Python et ne pourrais donc avoir de padawan.

Hors ligne

 

#3 Thu 07 February 2019 13:24

felixd
Participant occasionnel
Date d'inscription: 20 Jun 2017
Messages: 46

Re: QGIS 3.4: PYQT5 multiPrint

Super Merci

Effectivement MapsPrinter fera trés bien l'affaire, et même mieux avec un plus grand choix d'exports possible.
Vous parlez de rapport et paramétrage d'étiquette !!!
J'ai lu que la gestion des étiquettes avait bien évolué et c'est trés bien, mais de quel rapport parlez vous?

Merci encore pour ce plug-in

[edit]  OK j'ai trouvé la doc sur les rapport que vous avez donné dans un précédent post [/edit]

Dernière modification par felixd (Thu 07 February 2019 13:37)

Hors ligne

 

Pied de page des forums

Powered by FluxBB