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

GeoDataDays 2025

#1 Wed 30 July 2025 08:16

Larpenteur
Participant assidu
Lieu: Avignon
Date d'inscription: 24 Jan 2011
Messages: 157

QGIS 3.34.5 /3.10: barre d outil inactive et evolution du code Python

Bonjour,

Je compte sur le forum pour résoudre ce problème :-)
J'ai un projet QGIS personnalisé qui s'ouvre avec un script Python, l'interface est customisée et épurée avec certaines barres d'outils.
Le script utilise l'interface "physique" de QGIS, soit la "position" des boutons, le "nom" des barres d'outils...


L'objectif est de le faire évoluer de la version 3.10 à 3.34.5 voir 3.40.

Sur la 3.10, ma barre d'outil de sélection des entités fonctionne (QToolBar mAttributesToolbar / ActionSelection)

Sur la 3.34 ma barre d'outil sélection des entités a changé de nom ( QToolBar mSelectionToolbar / ActionSelection)

J'ai toute une série d'action pour la gestion des barres d'outils, notamment le désaffichage des barres non désactivées par personnalisation du style:

#Désaffichage des Barres non désactivées par Personnalisation
    iface.mainWindow().findChild(QToolBar, 'mFileToolBar').setVisible(False)
    iface.mainWindow().findChild(QToolBar, 'mMapNavToolBar').setVisible(False)
    iface.mainWindow().findChild(QToolBar, 'mDigitizeToolBar').setVisible(False)

Puis la récupération des Actions des barres d'outils QGIS:

  #Recuperation des Actions des Barres d'outils QGIS
    lQTBNoms = ['mFileToolBar','mMapNavToolBar', 'mAttributesToolBar','mDigitizeToolBar','mAdvancedDigitizeToolBar']



J'ai récupéré en PyQGIS le nom des barres d'outils de la 3.34.5 pour adapter le code MAIS...à l'ouverture toute semble fonctionner, AUCUNE erreur Python remonte.
Sauf que quand je désire sélectionner une entité de ma couche je clique sur l'objet désiré mais c'est inactif, aucune sélection et c'est valable pour les boutons qui composent cette toolbar (voir pj).

Si vous avez des pistes je suis preneur, merci!

Sylvain

Hors ligne

 

#2 Thu 07 August 2025 08:07

Larpenteur
Participant assidu
Lieu: Avignon
Date d'inscription: 24 Jan 2011
Messages: 157

Re: QGIS 3.34.5 /3.10: barre d outil inactive et evolution du code Python

Bonjour,

Je viens apporter un complément sur mes recherches...
J'étais sur une montée de version de script Python sur 3.34.5 LTR à partir de celui développé et qui fonctionne sur la 3.10.6. Après désinstallation de la 3.34.5 LTR à présent j'ai la 3.40.4 LTR.

Le problème se reproduit, ma barre d'outil Sélection est bien présente, mais impossible de sélectionner un objet (inactif), mais si je sélectionne l'objet depuis la table la sélectionne est brève et disparaît. Comme un problème de rafraichissement (refreshAllLayers).

Le problème semble venir de la commande iface.mapCanvas().[b]refreshAllLayers() à la ligne 3102 du script que je ne peux attacher en pièce jointe.

La portion de code problématique est la suivante:

#Suivi des Sélections : Méthode appelée par les méthodes 'selectionChanged' de chaque couche.
def Event_CoucheSelectionChanged(aLay):
    #Rafraichissement d'écran (la manip 'methode virtuelle' oublie d'afficher les sélections à l'écran)
    #iface.mapCanvas().refreshAllLayers() #NB : Indispensable pour le déblocage des fichiers physiques
    #Suivi de gSelectionLay et gCibleLay
    global gSelectionLay
    gSelectionLay = None
    global gCibleLay
    gCibleLay = None
    if not aLay.selectedFeatureCount() == 0:
        gSelectionLay = aLay
    #Conséquences sur Menus/Outils
    Event_ActiviteActions()


Merci pour vos retours
Sylvain

Dernière modification par Larpenteur (Thu 07 August 2025 08:45)

Hors ligne

 

Pied de page des forums

Copyright Association GeoRezo