Pages: 1
- Sujet précédent - QGIS 3.34.5 /3.10: barre d outil inactive et evolution du code Python - Sujet suivant
#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
Pages: 1
- Sujet précédent - QGIS 3.34.5 /3.10: barre d outil inactive et evolution du code Python - Sujet suivant