Suite

Ajout de valeurs de champ à un QComboBox dans PyQGIS


J'ai une couche qui dit 'Villes'. Il y a une colonne appelée 'NAME_1' dans le calque. Mon interface graphique a une QComboBox dans laquelle je veux que les valeurs de la colonne 'NAME_1' seules soient affichées dans la liste déroulante de la zone de liste déroulante.

Quelqu'un peut-il m'aider à fournir un extrait en Python pour obtenir une valeur d'une colonne particulière et l'afficher dans la zone de liste déroulante ?


Puisqu'il n'y a pas de widget QGIS GUI personnalisé pour cela (du moins je ne l'ai pas trouvé), vous pouvez essayer quelque chose comme ceci :

de PyQt4.QtGui import QComboBox lyr = iface.activeLayer() idx = lyr.dataProvider().fieldNameIndex( 'NAME_1' ) uv = lyr.dataProvider().uniqueValues( idx ) cb = QComboBox() cb.addItems( uv )

Notez que nous obtenons des valeurs uniques du champNOM_1, parce que je suppose que c'est le comportement souhaité. Sinon, vous montreriez à vos utilisateurs une liste avec des valeurs répétées, ce qui n'est pas vraiment idéal pour unQComboBox.


Les valeurs d'une table attributaire sont affichées dans une légende dans une mise en page à l'aide de PyQGIS

J'ai actuellement un script qui exécute les données dans ma carte, puis les exporte en tant que mise en page dans le compositeur d'impression. Sur la carte, j'ai une clé de légende qui fait référence aux données sur la carte. Dans ma légende, j'ai un tampon jaune intitulé ‘MM1 1.0 Buffer’. Dans la table attributaire de ce fichier vectoriel, j'ai une colonne appelée ‘LAC_Population_sum’, avec une valeur de la population affectée par un tremblement de terre, dans cette zone tampon. Cependant, je n'arrive pas à trouver un moyen d'obtenir cette valeur, elle est donc affichée dans ma légende sur la mise en page.

Le script que j'utilise pour créer une mémoire tampon est :

Ma table d'attributs pour le tampon MM1 1.0, avec la valeur de LAC_Population_sum :

Ce que ma légende montre actuellement :

Mon code qui crée le champ LAC_Population_Sum :

Une réponse

Vous pouvez créer un style catégorisé pour votre calque afin d'avoir le nom du calque et la valeur du polygone comme ceci :

Vous pouvez le faire dans PyQgis avec ce code il vous suffit de changer la couleur et l'opacité dans les 2 premières lignes :

Vous pouvez également changer le nom du calque pour obtenir quelque chose comme ceci :


Voir la vidéo: How to create checkable ComboBox Widget. PyQt5 Tutorial (Octobre 2021).