Suite

Comment personnaliser la visibilité des boutons dans QGIS ?


La barre d'outils intégrée nommée "Composer" a une icône "Dupliquer le compositeur".

Je souhaite basculer la visibilité de ce bouton dans la barre d'outils.

Comment y parvenir en utilisant pyqgis ?


Vous avez probablement évolué il y a longtemps, mais pour toute autre personne ayant ce problème, j'ai trouvé un moyen hack'ish de désactiver le bouton Enregistrer dans toutes les fenêtres de composition ouvertes :

pour c dans iface.activeComposers() : if c.isVisible() : w = c.composerWindow() # la QMainWindow du compositeur d'impression t = w.childAt(20,30) # son composeur QToolBar t.setMovable(False) # pour s'assurer que personne ne déplace la barre d'outils, ce qui perturbera notre logique b = t.childAt(18,12) # le premier QToolButton de cette barre d'outils a = b.defaultAction() # le QAction de ce bouton a.setEnabled(False) # le désactive ;- )

la méthode childAt de QWidget fait la magie de renvoyer une référence aux objets qui nous intéressent, vous pouvez donc désactiver votre bouton "Dupliquer le compositeur" en augmentant le premier argument (x) deb = t.enfantAt(18,12)jusqu'à ce que ça marche. En fait, cela pourrait théoriquement être utilisé pour trouver et manipuler n'importe quel objet dans la fenêtre de composition d'impression. Les coordonnées x/y sont relatives au coin supérieur gauche de la fenêtre.

Étant donné que l'interface graphique de QGIS est programmée pour utiliser des icônes de taille standard (24x24 pixels) et des tailles de menu, quelle que soit la résolution de votre écran, cela devrait être assez fiable, mais plus vous vous éloignez de l'origine, plus vous risquez de ruiner les futurs ajouts de boutons QGIS. votre code soigneusement conçu.

J'espère qu'un jour les développeurs de QGIS exposeront tous les widgets de composition dans l'API comme ils l'ont fait pour l'interface principale de QGIS, alors nous pourrons le faire correctement…


Comment afficher un seul des boutons afficher/masquer à l'aide de jquery ?

Je suis coincé ici. Voici ce que j'essaie de faire. Si l'image et la liste de description sont visibles, seul le bouton Masquer doit être affiché. Si l'image et la liste de description sont masquées, seul le bouton Afficher doit être visible. Voici ce que j'ai essayé de faire :

Voici mon code js : $(document).ready(function()< $("#hide").click(function()< $("img, dl").hide() >) $("#show ").click(function() < $("img, dl").show() $(document).ready(function()< $('#show').hide() function clickHandler() < $( '#hide').toggle('slow') $('#show').toggle('slow') >>) >) >) Lorsque la page se charge, seul le bouton de masquage doit s'afficher. Si les listes d'images et de descriptions ne sont pas visibles, le bouton Afficher doit être affiché. Les deux boutons s'affichent au chargement de la page. Quel est le problème ?


Vous pouvez toucher le bouton de volume et commencer à faire glisser votre doigt vers la gauche ou la droite pour régler le volume vers le haut ou vers le bas.

Pas besoin de lever le doigt.

Il en va de même pour la luminosité.

Vous pouvez modifier cela via une application tierce ou vous pouvez le définir à l'aide des Préférences Système.

  1. Ouvrez l'application Préférences Système.
  2. Sélectionnez l'option Clavier (troisième rangée, sixième élément ou recherchez simplement « clavier » et il se mettra en surbrillance)
  3. Dans le premier onglet (également appelé Clavier), localisez la liste déroulante "La barre tactile" et choisissez "Bande de contrôle étendue".

Cela vous donnera cette mise en page :

Je vous suggère d'essayer Pock, vous pouvez configurer l'ancienne touche d'augmentation et de diminution du volume sur votre barre tactile dans les préférences de pock. En plus, c'est une application gratuite !


1 réponse 1

Votre condition de visibilité est de vérifier si RadioButton1 est égal à $GlobalConstant.True. Mais si vous voulez que le groupe radio Stores Issues s'affiche en fonction de ce qui est sélectionné dans le groupe radio Call Category, vous devez vérifier quelle est la valeur du groupe de boutons radio est. Dans votre exemple, RadioButton1 est une ressource Choice, pas un groupe radio.

Si vous souhaitez afficher le groupe d'options Stores Issues lorsque le premier bouton radio (RadioButton1) dans la catégorie d'appel est sélectionné, vos critères seraient :

Votre deuxième groupe n'apparaissait pas dans l'écran de démarrage car le choix RadioButton1 est de type Texte et vous le comparez au booléen true. En supposant que RadioButton1 a une valeur de texte, cette comparaison sera toujours fausse.


Personnalisation de la fenêtre d'aperçu avant impression

Si vous souhaitez personnaliser le document de vue d'impression, cela peut être fait via la méthode de personnalisation du type de bouton d'impression. Il s'agit d'une fonction de rappel qui est exécutée lorsque le document d'affichage d'impression a été créé et vous donne la possibilité de le modifier en fonction de vos besoins. La fonction reçoit un seul paramètre - l'objet fenêtre pour le document de vue d'impression.

Cet exemple simple montre :

  • Comment une image peut être insérée dans le document d'impression à l'aide de jQuery
  • La taille de la police du document peut être ajustée pour être adaptée à l'impression
  • Une classe ajoutée au tableau pour améliorer sa mise en page pour l'impression
  • La taille de police du tableau est définie pour correspondre à la taille de police du document principal.
Nom Position Bureau Âge Date de début Un salaire
Tigre Nixon Architecte système Edinbourg 61 2011/04/25 $320,800
Garrett Winters Comptable Tokyo 63 2011/07/25 $170,750
Ashton Cox Auteur technique junior San Francisco 66 2009/01/12 $86,000
Cédric Kelly Développeur Javascript senior Edinbourg 22 2012/03/29 $433,060
Airi Satou Comptable Tokyo 33 2008/11/28 $162,700
Brielle Williamson Spécialiste de l'intégration New York 61 2012/12/02 $372,000
Herrod Chandler Assistant des ventes San Francisco 59 2012/08/06 $137,500
Rhona Davidson Spécialiste de l'intégration Tokyo 55 2010/10/14 $327,900
Colleen Hurst Développeur Javascript San Francisco 39 2009/09/15 $205,500
Sonya Frost Ingénieur logiciel Edinbourg 23 2008/12/13 $103,600
Iéna Gaines Responsable administratif Londres 30 2008/12/19 $90,560
Quinn Flynn Responsable de l'assistance Edinbourg 22 2013/03/03 $342,000
Charde Maréchal Directeur régional San Francisco 36 2008/10/16 $470,600
Haley Kennedy Concepteur marketing sénior Londres 43 2012/12/18 $313,500
Tatiana Fitzpatrick Directeur régional Londres 19 2010/03/17 $385,750
Michel Silva Concepteur marketing Londres 66 2012/11/27 $198,500
Paul Byrd Directeur financier (CFO) New York 64 2010/06/09 $725,000
Gloria Petite Administrateur des systèmes New York 59 2009/04/10 $237,500
Bradley Greer Ingénieur logiciel Londres 41 2012/10/13 $132,000
Dai Ríos Responsable du personnel Edinbourg 35 2012/09/26 $217,500
Jenette Caldwell Responsable du développement New York 30 2011/09/03 $345,000
Yuri Berry Directeur Marketing (CMO) New York 40 2009/06/25 $675,000
César Vance Assistance avant-vente New York 21 2011/12/12 $106,450
Doris Wilder Assistant des ventes Sydney 23 2010/09/20 $85,600
Angélique Ramos Président Directeur-Général (PDG) Londres 47 2009/10/09 $1,200,000
Gavin Joyce Développeur Edinbourg 42 2010/12/22 $92,575
Jennifer Chang Directeur régional Singapour 28 2010/11/14 $357,650
Brenden Wagner Ingénieur logiciel San Francisco 28 2011/06/07 $206,850
Fiona Vert Chef de l'exploitation (COO) San Francisco 48 2010/03/11 $850,000
Shou Itou Commercialisation régionale Tokyo 20 2011/08/14 $163,000
Maison Michelle Spécialiste de l'intégration Sydney 37 2011/06/02 $95,400
Suki Burks Développeur Londres 53 2009/10/22 $114,500
Prescott Bartlett Auteur technique Londres 27 2011/05/07 $145,000
Gavin Cortez Chef d'équipe San Francisco 22 2008/10/26 $235,500
Martena Mccray Assistance après-vente Edinbourg 46 2011/03/09 $324,050
Majordome de l'unité Concepteur marketing San Francisco 47 2009/12/09 $85,675
Howard Hatfield Responsable administratif San Francisco 51 2008/12/16 $164,500
Espoir Fuentes secrétaire San Francisco 41 2010/02/12 $109,850
Viviane Harrell Contrôleur financier San Francisco 62 2009/02/14 $452,500
Timothée Mooney Responsable administratif Londres 37 2008/12/11 $136,200
Jackson Bradshaw Réalisateur New York 65 2008/09/26 $645,750
Olivia Liang Ingénieur support Singapour 64 2011/02/03 $234,500
Bruno Nash Ingénieur logiciel Londres 38 2011/05/03 $163,500
Sakura Yamamoto Ingénieur support Tokyo 37 2009/08/19 $139,575
Thor Walton Développeur New York 61 2013/08/11 $98,540
Finn Camacho Ingénieur support San Francisco 47 2009/07/07 $87,500
Serge Baudouin Coordonnateur des données Singapour 64 2012/04/09 $138,575
Zénaida Frank Ingénieur logiciel New York 63 2010/01/04 $125,250
Zorita Serrano Ingénieur logiciel San Francisco 56 2012/06/01 $115,000
Jennifer Acosta Développeur Javascript junior Edinbourg 43 2013/02/01 $75,650
Cara Stevens Assistant des ventes New York 46 2011/12/06 $145,600
Hermione majordome Directeur régional Londres 47 2011/03/21 $356,250
Lael Greer Administrateur des systèmes Londres 21 2009/02/27 $103,500
Jonas Alexandre Développeur San Francisco 30 2010/07/14 $86,500
Decker Shad Directeur régional Edinbourg 51 2008/11/13 $183,000
Michael Bruce Développeur Javascript Singapour 29 2011/06/27 $183,000
Donna Snider Service client New York 27 2011/01/25 $112,000
Nom Position Bureau Âge Date de début Un salaire
  • Javascript
  • HTML
  • CSS
  • Ajax
  • Script côté serveur
  • commentaires

Le Javascript montré ci-dessous est utilisé pour initialiser la table montrée dans cet exemple :

En plus du code ci-dessus, les fichiers de bibliothèque Javascript suivants sont chargés pour être utilisés dans cet exemple :

Le code HTML affiché ci-dessous est l'élément de tableau HTML brut, avant qu'il ne soit amélioré par DataTables :

Cet exemple utilise un peu de CSS supplémentaire au-delà de ce qui est chargé à partir des fichiers de bibliothèque (ci-dessous), afin d'afficher correctement le tableau. Le CSS supplémentaire utilisé est indiqué ci-dessous :

Les fichiers de bibliothèque CSS suivants sont chargés pour être utilisés dans cet exemple pour fournir le style du tableau :

Cette table charge les données par Ajax. Les dernières données chargées sont indiquées ci-dessous. Ces données seront mises à jour automatiquement au fur et à mesure que des données supplémentaires seront chargées.

Le script utilisé pour effectuer le traitement côté serveur de cette table est indiqué ci-dessous. Veuillez noter qu'il ne s'agit que d'un exemple de script utilisant PHP. Les scripts de traitement côté serveur peuvent être écrits dans n'importe quel langage, en utilisant le protocole décrit dans la documentation DataTables.


Comment créer un bouton radio personnalisé

Exemple

/* Personnaliser l'étiquette (le conteneur) */
.conteneur <
bloc de visualisation
position : relative
remplissage-gauche: 35px
marge en bas : 12px
curseur : pointeur
taille de la police : 22px
-webkit-user-select : aucun
-moz-user-select : aucun
-ms-user-select : aucun
sélection par l'utilisateur : aucun
>

/* Cacher le bouton radio par défaut du navigateur */
.entrée conteneur <
position : absolue
opacité : 0
curseur : pointeur
hauteur : 0
largeur : 0
>

/* Créer un bouton radio personnalisé */
.checkmark <
position : absolue
haut : 0
à gauche : 0
hauteur: 25px
largeur: 25px
couleur de fond : #eee
rayon de bordure : 50 %
>

/* Au survol de la souris, ajoutez une couleur de fond grise */
.container:entrée de survol

.checkmark <
couleur de fond : #ccc
>

/* Lorsque le bouton radio est coché, ajoutez un fond bleu */
.container input:coché

.checkmark <
couleur de fond : #2196F3
>

/* Créer l'indicateur (le point/cercle - masqué lorsqu'il n'est pas coché) */
.checkmark:après <
contenu : ""
position : absolue
affichage : aucun
>

/* Affiche l'indicateur (point/cercle) lorsqu'il est coché */
.container input:coché

.checkmark:après <
bloc de visualisation
>

/* Styliser l'indicateur (point/cercle) */
.container .checkmark:after <
haut : 9px
gauche : 9px
largeur: 8px
hauteur: 8px
rayon de bordure : 50 %
fond : blanc
>


1 réponse 1

Il existe de nombreuses façons de le faire, mais je vous déconseille d'utiliser une icône comme celle que vous avez choisie (qui peut être spécifique à la plate-forme). Le concept de plus d'informations est un peu abstrait à représenter avec une icône qui peut facilement se traduire à travers les cultures.

Si les informations doivent être affichées dans un panneau de superposition, une flèche vers le bas devrait convenir :

Cette approche est la façon dont StackExchange affiche plus d'informations utilisateur rapidement dans un panneau superposé :

À moins que cliquer sur le nom de l'entreprise ne fasse autre chose, je ferais en cliquant sur le nom de l'entreprise ou sur la flèche pour afficher le panneau de superposition.

Si la flèche n'est pas assez claire, j'ajouterais du texte. Notez que cliquer sur plus d'informations ou sur la flèche devrait déclencher le panneau de superposition :

Si l'information doit être sur son propre écran dans l'application, alors il vaut mieux être juste explicite et utiliser un bouton :

Dans ce cas, il n'y a pas d'erreur et de confusion quant à la manière dont l'utilisateur peut obtenir plus d'informations sur l'entreprise. Vous devez également styliser le bouton en fonction de votre application.


Recherche et affichage d'images infrarouges couleur pour les États-Unis

Si vous avez besoin de photos infrarouges en couleur (fausses couleurs) pour l'analyse de la végétation, ces instructions peuvent vous être utiles. De nombreux sites (par exemple, l'USDA Geo Gateway) suppriment la bande proche infrarouge des images récentes pour réduire la taille des fichiers. Heureusement, les images complètes à quatre bandes sont disponibles sur le site Web de la carte nationale. Continuez votre lecture pour savoir comment trouver et utiliser les images CIR.

3) Zoomez sur votre zone d'intérêt à l'aide de la molette de votre souris ou de l'outil de zoom en haut de la fenêtre de la carte
4) Cliquez sur le Télécharger les données bouton Il vous sera demandé si vous souhaitez définir une zone de téléchargement en dessinant une boîte, en utilisant des feuilles quad 1:24k, en utilisant toute la carte visible, ou en entrant des coordonnées. Choisissez la première option (cadre de délimitation). Cliquez et faites glisser sur votre zone d'intérêt (AOI).


5) Ensuite, vous êtes présenté avec la liste des données disponibles pour votre AOI. Choisir Orthoimagerie et cliquez Prochain.

6) Une liste d'images disponibles pour votre AOI s'affichera. La première option, 10:1 PNIA compressé, contient l'imagerie à 4 bandes 2010-2012. (Remarque sous « Bande », ces données sont répertoriées comme 4B (rouge, vert, bleu et proche infrarouge)). Cochez la case à côté de 10:1 NAIP compressé, puis clique Prochain.

7) Votre « panier » apparaîtra sur le côté gauche de la fenêtre de votre navigateur. Clique le Vérifier bouton.

8) Entrez votre adresse e-mail deux fois sur l'écran suivant et cliquez sur Passer la commande.

9) Vous devriez voir une confirmation de votre commande dans une fenêtre pop-up. Cliquez sur d'accord pour fermer la fenêtre contextuelle.

Vous recevrez un e-mail avec des liens vers votre téléchargement. Notez que les orthophotos sont distribuées en tuiles de 3,75 minutes, donc chaque 7,5 minutes (carte de quagrangle USGS à l'échelle 1:24 000) sera couverte par quatre photos. Un comté peut avoir besoin de plusieurs dizaines d'images pour une couverture complète.

Quatre quads USGS de 7,5 minutes sont illustrés dans l'image ci-dessus (Point Nipigon, Cheboygan, Aloha et Mullett Lake). Seize images devraient être téléchargées pour couvrir ce

II. Affichage de l'imagerie infrarouge couleur (CIR) dans ArcGIS

1) Après avoir téléchargé vos images, démarrez ArcMap et ouvrez une nouvelle carte.

2) Utilisez le ArcCatalog onglet ou le Ajouter des données outil pour accéder à votre dossier de données. Ajoutez les images téléchargées à votre carte. Par défaut, ArcGIS affichera les images en utilisant un schéma standard de « couleurs visibles » (rouge-vert-bleu).

3) Faites un clic droit sur une image et choisissez Propriétés…

4) Choisissez le Symbologie tabulation et modification rouge à Bande_4, Vert à Bande_1, et Bleu à Bande_2. Cliquez sur Appliquer, ensuite d'accord.

5) Votre image doit passer du vert principalement au rouge (en supposant que vous visualisez une zone boisée ou végétalisée).

L'image du haut ci-dessus est affichée en couleurs standard (R-G-B) celle ci-dessous en « fausses couleurs » NIR-R-G. Une végétation verte saine et riche en chlorophylle est représentée en rouge et en rose dans des images en fausses couleurs. Notez que Sherman Field, le terrain de football de Michigan Tech, est en gazon synthétique : il apparaît vert à l'œil nu (image couleur standard), mais est presque noir sur l'image CIR. Le film infrarouge était à l'origine connu sous le nom de "film de détection de camouflage" en raison de sa capacité à résoudre la "fausse" végétation de cette manière.

6) Répétez les paramètres de bande (en changeant pour les bandes 4-1-2) pour chaque image de votre carte.

III. Affichage de l'imagerie couleur infrarouge (CIR) dans QGIS

1) Après avoir téléchargé vos images, démarrez QGIS et ouvrez un nouveau document de projet (le chargement d'un nouveau document de projet vide est le comportement par défaut).

2) Utilisez le Navigateur pour afficher votre dossier de données. Si vous ne voyez pas le navigateur, accédez à Afficher les > panneaux et s'assurer que Navigateur est vérifié.

3) Ensuite, développez le répertoire qui contient les images que vous avez téléchargées. Ajoutez toutes les images dont vous avez besoin en les faisant glisser depuis le Navigateur à la carte. Par défaut, QGIS affichera les images en couleur en utilisant un schéma standard de « couleurs visibles » (rouge-vert-bleu).

Vous pouvez utiliser à la place le Ajouter une couche raster outil (ci-dessus) pour ajouter vos images mais je trouve le Navigateur plus facile à utiliser.

4) Clic-droit sur une image dans votre Couches lister et choisir Propriétés

5) Sélectionnez le Style panneau. Met le rouge bande à afficher Bande 4, les Vert à Bande 1, et le Bleu à Bande 2. Cliquez sur Appliquer puis d'accord.

6) QGIS affichera maintenant votre image dans des tons de rouge au lieu de vert (en supposant que vous visualisez une zone boisée ou végétalisée).

Notez que les conifères ont une structure cellulaire foliaire différente et contiennent moins de chlorophylle que la végétation à feuilles caduques. texture (les conifères semblent souvent plus grossiers), les conifères sont généralement plus sombre sur l'imagerie en fausses couleurs car ils reflètent moins d'énergie dans la bande NIR. Un peuplement de conifères est mis en évidence dans les deux images ci-dessus.


Comment afficher le contrôle EnumProperty comme des boutons radio, tout en gardant la sélection exclusive ?

J'ai configuré une EnumProperty sur la scène dans la fonction de registre :

Maintenant, ailleurs dans le code, j'ai un Panneau, qui est d'afficher le 'enum' pour la sélection :

Jusqu'ici tout va bien, le contrôle s'affiche correctement, mais pas comme je le souhaite :

Le fait est que - je voulais une apparence différente - je ne voulais pas de champ déroulant, mais plutôt un champ semblable à un bouton radio, comme celui que l'on trouve par exemple ici :

. où je peux choisir une des options concernant le mode couleur (NB , RVB ou alors RVBA).

J'ai trouvé que je peux mettre le "ENUM_FLAG" dans le champ d'options de la définition EnumProperty :

Cela aussi a bien fonctionné, le résultat que j'ai maintenant est le suivant:

Mais maintenant, je peux activer les deux boutons à la fois en utilisant Shift , et c'est ce que je veux éviter :

Alors Comment rendre la sélection exclusive ? Comment forcer Blender à passer d'une option à l'autre (ou en d'autres termes : Comment désactiver la fonctionnalité Shift) ?


Voir la vidéo: QGIS - Polygonize - Raster to Vector (Octobre 2021).