Rechercher et remplacer
Modifier en masse des propriétés dans tout un projet : titres de folio, étiquettes et informations d'éléments, texte de conducteur, texte indépendant. Malgré son nom, ce n'est pas une recherche/remplacement de texte — voir §2 pour ce que cela fait réellement.
Source : sources/SearchAndReplace/ — searchandreplaceworker.{cpp,h} (la
logique), ui/searchandreplacewidget.cpp (l'arbre de portée principal),
ui/replace*dialog.cpp (les éditeurs par catégorie).
1. Délimiter ce qui est modifié
Le dialogue principal est un arbre de tout ce qui correspond, groupé par type :
- Folios
- Champs texte (texte indépendant)
- Éléments, subdivisés en simple / maître / esclave / renvoi de folio / bornier — les mêmes catégories que documente Lier des éléments
- Conducteurs
Clic droit sur un folio dans l'arbre pour Sélectionner les éléments/conducteurs/textes de ce folio — passe directement d'un résultat de recherche à une vraie sélection sur le canevas, utile pour vérifier une correspondance avant de s'engager à la modifier.
2. Cela fixe des valeurs, ce n'est pas un rechercher-remplacer de texte
Chaque catégorie ouvre un dialogue avec un champ par propriété (étiquette, commentaire, titre de folio, couleur de conducteur…). Laissez un champ vide et cette propriété reste totalement intacte sur tout ce qui correspond. Remplissez-le, et il remplace intégralement la valeur — pas une substitution de sous-chaîne, tout le champ devient ce que vous avez saisi.
Cette distinction compte : il n'y a ici aucune reconnaissance de motif « trouver X, remplacer par Y » pour le contenu textuel. Si c'est ce que vous voulez, vous fixez le champ de chaque élément correspondant à exactement la même nouvelle valeur.
Effacer un champ délibérément
Comme une case vide signifie déjà « ne pas toucher », vider un champ pour de
bon nécessite un signal distinct — une case à cocher à côté de chaque
champ s'en charge : cochez-la et le champ se désactive, et cette
propriété est effacée sur toute correspondance plutôt que laissée intacte.
En interne, cela passe par une chaîne sentinelle réservée
(SearchAndReplaceWorker::eraseText()) que la case à cocher définit pour
vous ; vous ne la tapez jamais vous-même.
Chaque champ a donc trois états réels : vide (ne pas toucher), coché (effacer), ou rempli (remplacer) — pas les deux habituels.
3. Ce qui est modifiable par catégorie
Correspond aux quatre types de cible de SearchAndReplaceWorker :
| Catégorie | Champs typiques |
|---|---|
| Folio | titre, auteur, indice de révision, et autres champs de cartouche |
| Élément | étiquette et les champs d'information d'élément standard |
| Conducteur | texte, fonction, tension/protocole, couleur, section, alignement |
| Texte indépendant | le contenu du texte lui-même |
Un mode Avancé combine plusieurs de ces catégories en une seule opération sur des sélections mixtes, plutôt que de traiter folios/éléments/ conducteurs un dialogue à la fois.
4. Remarques pratiques
- Cela modifie beaucoup de choses en une fois, sans annulation fine par élément — c'est une opération groupée unique. Vérifiez l'arbre de portée avant de valider.
- Un champ vide étant un no-op, vous pouvez ouvrir le dialogue, ne toucher que la seule propriété qui vous intéresse, et tout le reste sur chaque élément correspondant reste garanti intact — sûr à lancer largement tant que vous ne remplissez que ce que vous comptez changer.
- C'est une fonction propre à l'interface graphique ; il n'y a pas d'équivalent en ligne de commande. Pour des modifications groupées scriptées, voir Automatiser QElectroTech — éditer le XML directement.
Voir aussi : Lier des éléments · Variables et formules
Getting Started
🌐 Languages — English · Français · Deutsch
Guides
Conductors — wire properties, what feeds which export, and cables
Wire & cable catalogue — cable types, IEC 60757 core colours, assigning a core to a conductor
Printing and exporting — paper, PDF, images, and what each path does differently
Linking elements — master, slave, terminal
PLC modules — I/O tables and linking a wire to a specific point
Using the element editor — drawing tools, saving, checks
Preferences reference — what each settings page does
Keyboard-only control — mouseless QET, and the one real gap
Mouse modifiers — what Shift, Ctrl and Alt change while you drag
Managing collections — folders, writability, building your own shortlist
Templates — reusable multi-element blocks, and why clicking one does nothing
Search & Replace — bulk property changes
Building a nomenclature query — the BOM/summary table builder
Linking wires across pages — folio reports
Variables & formulas — %f, %{label}, sequences
Auto-numbering — schemes, sequences, freezing
Terminal strips — strips, levels, bridges
Title block templates — the .titleblock format
Importing EPLAN parts (.edz) — EPLAN Data Portal
DXF import & export — two unrelated features, one format
The project database — the in-memory SQLite cache
Development
Automating QET — CLI, XML formats, external tools
CLI Reference — command line usage
JavaScript Scripting — --run, geometry editing, undo
Vision — proposal, under discussion
