mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-10-02 16:44:16 +02:00
Document merged features that had no wiki coverage
Symbol editor background frame (#1164); configuration files and remembered dialog sizes (#1166, #1165); ranked-list search option (#1083); crash-recovery copies and crash reports in the FAQ (#1167, #1013, #1031, #1181); double-click wire colour and one-text-per-sheet applying at once (#1172, #1191); cabinet thumbnails (#1170); linked copies on paste/duplicate (#997); second click in a group (#1110); align icons (#1153); uuid lookups for sheets, tables and symbol texts (#1098, #1114); database filled from the document (#1142); value suggestions and text-width handles (#1021, #591).
@@ -110,6 +110,10 @@ Items already on the grid stay exactly where they are.
|
||||
| Centrer verticalement | *Centre vertically* | one horizontal line, through the average of their centres |
|
||||
| Aligner en bas | *Align bottom* | the bottom-most bottom edge |
|
||||
|
||||
Each of these commands, and *Aligner sur la grille*, has its own icon in the
|
||||
menu, the right-click menu, command search and the shortcut bar
|
||||
([PR #1153](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1153), merged 2026-09-29).
|
||||
|
||||
With a single item selected the six commands are greyed out; only Snap to
|
||||
grid is available. A single group counts as one item, however many things
|
||||
are in it.
|
||||
|
||||
@@ -36,6 +36,11 @@ tree, and **double-clicking** a symbol (or pressing **Enter** on it) places it
|
||||
on the sheet instead of opening the element editor; a preference restores the
|
||||
old behaviour. See **[Drawing faster](drawing_faster)**.
|
||||
|
||||
Prefer the filtered tree? Untick *Afficher les résultats de recherche sous
|
||||
forme de liste triée* (*Show search results as a ranked list*) in
|
||||
**Configurer QElectroTech > Général** ([PR #1083](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1083)). The search then
|
||||
filters the tree as it did before, with the tree's own keyboard navigation.
|
||||
|
||||
---
|
||||
|
||||
## 2. The three collections, and which ones you can actually edit
|
||||
@@ -140,6 +145,24 @@ collection on disk — that's the **Embedded** row above. This is what makes a
|
||||
from your custom collection travel with it, correctly rendered, even though
|
||||
the recipient has no such collection.
|
||||
|
||||
### Cabinet thumbnails
|
||||
|
||||
To lay out a cabinet you need a block for each device that says what it is.
|
||||
Select symbols on a sheet, right-click, and choose **Générer une vignette
|
||||
d'armoire** (*Generate cabinet thumbnail*). Every selected symbol that has
|
||||
both a **manufacturer** and a **manufacturer reference** in its information
|
||||
gets a thumbnail: a 120 × 30 frame showing those two values. The thumbnails go
|
||||
into a **Cabinet thumbnails** folder of the project's embedded collection,
|
||||
ready to drag onto a cabinet layout sheet.
|
||||
|
||||
- A device already in the folder is skipped, so running it again, or on
|
||||
several copies of one device, adds nothing.
|
||||
- The entry is hidden when no selected symbol has both values.
|
||||
- Like anything embedded, the thumbnails travel inside the `.qet` file.
|
||||
|
||||
Since [PR #1170](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1170) (merged 2026-09-29); discussion
|
||||
[#602](https://github.com/qelectrotech/qelectrotech-source-mirror/discussions/602).
|
||||
|
||||
---
|
||||
|
||||
See also: **[Elements XML](elements_XML)** ·
|
||||
|
||||
+20
-1
@@ -178,6 +178,15 @@ Conductors joined through elements form a **potential** — an equipotential net
|
||||
"One text per sheet" is what stops the same wire number being repeated a dozen
|
||||
times along one potential.
|
||||
|
||||
The setting that counts is the sheet's own, in the sheet's properties
|
||||
(*activer l'option un texte par potentiel*). Since
|
||||
[PR #1191](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1191) (merged 2026-10-01) the drawing follows it as soon as you
|
||||
press OK: unticking shows the hidden wire texts, ticking hides the repeats.
|
||||
Before, nothing changed until each wire was edited or the project reopened,
|
||||
which made the option look broken (bugtracker #344). The project's own
|
||||
setting, under the project properties' Conductors tab, still only applies to
|
||||
sheets created afterwards.
|
||||
|
||||
### Single-line mode
|
||||
|
||||
Only drawn when the type is single-line:
|
||||
@@ -355,7 +364,17 @@ What it does:
|
||||
The swatch is greyed out when no sheet is open or the project is read-only.
|
||||
|
||||
**F2** still opens the colour picker for exactly one selected conductor, and
|
||||
does nothing with several selected or none. For bulk changes across sheets by
|
||||
does nothing with several selected or none.
|
||||
|
||||
**Double-click a colour to apply it.** In the colour dialog opened by **F2** or
|
||||
by *Autre couleur…*, a double-click on a colour picks it and closes the
|
||||
dialog, as OK does; a single click still only selects it
|
||||
([PR #1172](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1172), merged 2026-09-30). This works where QElectroTech uses
|
||||
Qt's own colour dialog — always on Windows. Where the desktop's own dialog is
|
||||
shown instead (macOS, and Linux desktops such as GNOME or KDE), nothing
|
||||
changes.
|
||||
|
||||
For bulk changes across sheets by
|
||||
some other criterion, use **[Search & Replace](search_and_replace)**.
|
||||
|
||||
There are **no named conductor presets**. A project has a single default set of
|
||||
|
||||
@@ -184,6 +184,24 @@ names.
|
||||
> `elementeditor/max-parts-element-editor-list`, so it can be raised if you
|
||||
> routinely draw elements that big.
|
||||
|
||||
### The background frame
|
||||
|
||||
The canvas is an endless grid of dots, which gives nothing to judge how big a
|
||||
symbol will look on a real sheet. **Affichage ▸ Afficher le cadre de fond**
|
||||
(*View ▸ Show background frame*), also a button on the view toolbar, draws a
|
||||
dashed frame centred on the symbol's origin, the size of a default sheet's
|
||||
drawing area: 1020 × 640.
|
||||
|
||||
**Affichage ▸ Taille du cadre de fond...** (*Background frame size*) sets
|
||||
another width and height, for example the size of one cell or of the space a
|
||||
symbol usually gets. Both settings are remembered between sessions; the frame
|
||||
is off by default.
|
||||
|
||||
The frame is only drawn on screen. It is not saved in the symbol, and it does
|
||||
not appear in an SVG export.
|
||||
|
||||
Since [PR #1164](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1164) (merged 2026-09-29).
|
||||
|
||||
---
|
||||
|
||||
## 7. Getting drawings in and out
|
||||
|
||||
@@ -266,6 +266,23 @@ examples uses them.
|
||||
|
||||
---
|
||||
|
||||
## 6b. Copying linked elements
|
||||
|
||||
Copy and paste a coil **together with** its contacts (or a PLC master with its
|
||||
slave I/O), or duplicate a whole sheet from the project panel's right-click
|
||||
**Copier et coller** (*Copy and paste*), and the copies are linked **to each
|
||||
other**, as the originals are. The originals keep their own links, and no copy
|
||||
links back to an original. Before
|
||||
[PR #997](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/997) (merged 2026-09-23) every copy arrived unlinked.
|
||||
|
||||
If only one side is copied — the contact without its coil — the copy comes in
|
||||
unlinked, as before: there is nothing in the paste for it to link to. The
|
||||
follow-up for cut and paste, where keeping the link to the *original* partner
|
||||
would be right, is
|
||||
[discussion #1174](https://github.com/qelectrotech/qelectrotech-source-mirror/discussions/1174).
|
||||
|
||||
---
|
||||
|
||||
## 7. Quick reference
|
||||
|
||||
| I want to… | Set |
|
||||
|
||||
+41
@@ -270,6 +270,47 @@ For very large projects (1000+ elements), performance may be limited.
|
||||
|
||||
See **[Issues](https://github.com/qelectrotech/qelectrotech-source-mirror/issues)** for bug reports.
|
||||
|
||||
### Q: QET crashed — how do I get my work back?
|
||||
|
||||
Every 20 minutes QElectroTech writes a crash-recovery copy of each open project
|
||||
that changed since the last copy. If nothing changed, no copy is written, so a
|
||||
big project that sits unchanged no longer freezes for a moment every 20
|
||||
minutes ([PR #1013](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1013)).
|
||||
|
||||
It keeps **the last three copies** of each project, written in turn
|
||||
([PR #1167](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1167), merged 2026-09-29). If a project was already damaged when
|
||||
a copy was taken, that copy only replaces the oldest of the three, not your
|
||||
only one.
|
||||
|
||||
At the next start after a crash, a window titled **Fichiers de restauration**
|
||||
(*Recovery files*) lists each project with a drop-down of its copies. The
|
||||
newest, marked *(la plus récente)* (*most recent*), is selected; pick an older
|
||||
one if the newest is the broken one. The copies you did not pick are deleted.
|
||||
|
||||
A copy that cannot be read gives a warning instead of crashing QElectroTech
|
||||
again ([PR #1031](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1031)).
|
||||
|
||||
This is separate from **autosave**, which saves the project itself on a timer
|
||||
and is off unless you set an interval for *Sauvegarde automatique des
|
||||
projets* (*Autosave projects*) in **Configurer QElectroTech > Général**.
|
||||
|
||||
### Q: What does a crash report contain?
|
||||
|
||||
After a crash, QElectroTech shows a report to send with your bug report. On
|
||||
Windows it now says what went wrong and where ([PR #1181](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1181), merged
|
||||
2026-09-30):
|
||||
|
||||
- the error by name, such as *access violation* or *stack overflow*, and for a
|
||||
bad memory access the address used;
|
||||
- where it happened, and the chain of calls that led there, one line per step
|
||||
as `module+offset`;
|
||||
- crashes from a failed check (`abort()`) or a fatal Qt error, which used to
|
||||
leave no report at all.
|
||||
|
||||
Include the whole report when you report the crash: a developer with the same
|
||||
build can turn each `module+offset` line into a function and line in the
|
||||
source. Reports from Linux are unchanged.
|
||||
|
||||
### Q: QET won't start
|
||||
|
||||
**A:** Try:
|
||||
|
||||
@@ -39,6 +39,7 @@ follow their symbols when the group moves, exactly as they do today.
|
||||
| You do | What happens |
|
||||
|---|---|
|
||||
| Click any member | the whole group is selected |
|
||||
| Click again on a member of a selected group, without dragging | only that member stays selected, to edit it on its own ([PR #1110](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1110)). A click on a symbol's own text counts as a click on the symbol |
|
||||
| Drag a member | the whole group moves |
|
||||
| Arrow keys, with the group selected | the whole group moves |
|
||||
| Draw a selection rectangle that touches part of a group | the whole group is selected when you release the mouse |
|
||||
|
||||
+37
-1
@@ -47,6 +47,7 @@ Three more options in this group come with the features on
|
||||
| *Double-cliquer dans la collection ouvre l'éditeur d'élément au lieu de l'insérer* — double-click in Collections opens the editor instead of placing the symbol | off (double-click places) | [PR #1042](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1042) |
|
||||
| *Afficher les commandes près de la sélection* — a small command bar beside what you just clicked | **on** | [PR #1055](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1055) |
|
||||
| *Gestes de la souris avec le bouton droit* — right-drag runs a command from a ring | **on** | [PR #1057](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1057) |
|
||||
| *Afficher les résultats de recherche sous forme de liste triée* — a Collections search shows one ranked list. Untick it for the filtered tree search of older versions. The Insert picker and the shortcut bar stay ranked either way | **on** | [PR #1083](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1083) |
|
||||
|
||||
### Startup state
|
||||
|
||||
@@ -167,7 +168,9 @@ to commands. See **[3D mouse](3d_mouse)**.
|
||||
|
||||
- **No per-diagram auto-save interval.** QET writes a periodic
|
||||
crash-recovery backup in the background, but its timing isn't a setting
|
||||
— see the User Manual's note on this.
|
||||
— see the User Manual's note on this, and
|
||||
**[After a crash](faq#q-qet-crashed--how-do-i-get-my-work-back)** in the FAQ
|
||||
for the three copies it keeps.
|
||||
- **No project-wide "page size" setting** separate from the Sheet tab's
|
||||
border configuration above — border rows/columns/size *is* the page
|
||||
layout.
|
||||
@@ -182,6 +185,39 @@ to commands. See **[3D mouse](3d_mouse)**.
|
||||
the project. See **[Printing and exporting](printing_and_export)** §4 for
|
||||
what it does to output.
|
||||
|
||||
## 6. Keeping your settings in a file
|
||||
|
||||
From the **Configuration** menu, below *Configurer QElectroTech*:
|
||||
|
||||
| Entry | Does |
|
||||
|---|---|
|
||||
| **Enregistrer la configuration sous...** (*Save configuration as*) | saves every setting to a `.conf` file |
|
||||
| **Charger une configuration...** (*Load configuration*) | replaces your settings with a saved file, then **closes QElectroTech**; start it again to use them |
|
||||
|
||||
Use it to keep one set of settings per customer or drawing standard, to move
|
||||
your settings to another computer, or to keep a copy before trying something.
|
||||
The file is plain text in ini format, the same on every system.
|
||||
|
||||
- **Kept out of the file, and kept when loading:** window and dialog sizes and
|
||||
positions, and the recent-files lists. They belong to the computer, not to
|
||||
the way you work.
|
||||
- **Loading replaces, it does not merge.** A setting the loaded file does not
|
||||
have is removed, so switching from one saved configuration to another leaves
|
||||
nothing of the first behind.
|
||||
- Only files saved by QElectroTech are accepted.
|
||||
|
||||
Since [PR #1166](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1166) (merged 2026-09-29).
|
||||
|
||||
### Dialogs remember their size
|
||||
|
||||
Resize a dialog — this Preferences window, Search and Replace, Export and the
|
||||
others — and it reopens at that size and place, also after restarting
|
||||
QElectroTech. A dialog last left partly off-screen (a monitor unplugged, say)
|
||||
reopens fully on screen. The recovery prompt and the image crop dialog keep
|
||||
their fixed size. Since [PR #1165](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1165) (merged 2026-09-29), which also
|
||||
fixed the PLC input/output table's *Type* column showing as light grey boxes
|
||||
under a dark system theme.
|
||||
|
||||
---
|
||||
|
||||
See also: **[Project XML](project_XML)** · **[Linking elements](element_linking)** ·
|
||||
|
||||
@@ -48,6 +48,7 @@ QETProject constructed
|
||||
└── updateDB()
|
||||
project XML read
|
||||
└── updateDB() ← full repopulate, once, after everything is loaded
|
||||
(read from the .qet document since PR #1142, see below)
|
||||
user edits the diagram
|
||||
└── addElement / removeElement / elementInfoChanged
|
||||
addDiagram / removeDiagram / diagramInfoChanged / diagramOrderChanged
|
||||
@@ -71,6 +72,29 @@ losing the whole thing costs nothing: it is rebuilt on the next open.
|
||||
rebuild among them, so the cost on a given project can be read straight from
|
||||
the console output rather than guessed at.
|
||||
|
||||
### Filled from the file, not from the built sheets
|
||||
|
||||
Since [PR #1142](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1142) (merged 2026-09-29), the full fill at load reads the
|
||||
`.qet` document instead of walking the sheets QElectroTech has built. The
|
||||
tables hold the same rows either way — a test fills them both ways on all 24
|
||||
shipped examples and requires identical results — but the database no longer
|
||||
needs every sheet built before it can say what is on them. That is the first
|
||||
step towards opening a big project without building every sheet up front
|
||||
(discussion [#1141](https://github.com/qelectrotech/qelectrotech-source-mirror/discussions/1141)).
|
||||
|
||||
- **Labels from formulas** are computed from the document too. The file keeps
|
||||
the last computed value, which can be stale (`K%total-%id` saved as `K1-1`,
|
||||
shown as `K3-1`), so the formula is evaluated again rather than the saved
|
||||
text trusted.
|
||||
- **A file that lacks something the fill needs** — older files without saved
|
||||
uuids, or wires with a frozen formula text — falls back to the old way and
|
||||
says why in the log.
|
||||
- `QET_DATABASE_FROM_FOLIOS=1` in the environment forces the old way.
|
||||
- **Not moved yet:** shapes, free texts and pictures still come from the built
|
||||
sheets (text sizes need fonts). Opening is not faster yet.
|
||||
|
||||
The incremental updates while you edit are unchanged.
|
||||
|
||||
---
|
||||
|
||||
## 3. Schema
|
||||
|
||||
+31
@@ -206,6 +206,37 @@ qet.addConductor(0, coil, a2, lamp, qet.terminalIndex(0, lamp, "{77aa…}"));
|
||||
symbol file's terminals. Every terminal of an opened project has one (see
|
||||
[the project database](project_database), section 4).
|
||||
|
||||
### Find a sheet, text, shape, picture, table or symbol text by its uuid
|
||||
|
||||
Most calls name things by **position**: sheet 2, text 0, table 1. Positions
|
||||
shift when something before them is added or removed, so a script that deletes
|
||||
table 0 and then moves "table 1" moves the wrong one. Hold the uuid instead,
|
||||
and turn it into the current position when you need it:
|
||||
|
||||
```js
|
||||
qet.folioUuid(index) // -> "{…}", or ""
|
||||
qet.folioIndex(uuid) // -> current index, or -1
|
||||
|
||||
qet.textIndex(folioIndex, uuid) // a free text, in qet.texts(folioIndex)
|
||||
qet.shapeIndex(folioIndex, uuid) // a shape, in qet.shapes(folioIndex)
|
||||
qet.imageIndex(folioIndex, uuid) // a picture, in qet.images(folioIndex)
|
||||
qet.tableIndex(folioIndex, uuid) // a table, in qet.tables(folioIndex)
|
||||
qet.elementTextIndex(folioIndex, elementUuid, textUuid)
|
||||
// a symbol's text field, in qet.elementTexts(folioIndex, elementUuid)
|
||||
```
|
||||
|
||||
Each returns `-1` when there is no such item.
|
||||
|
||||
- **Symbol text fields take the symbol too**, because copies of a symbol keep
|
||||
their fields' uuids — in `2612_ats_singlephase.qet` one field uuid appears
|
||||
on 20 copies.
|
||||
- **Older files work too.** Most shipped examples save no sheet uuid; a sheet
|
||||
gets one on load, the same on every load, written on the next save.
|
||||
|
||||
Since [PR #1098](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1098) (tables, symbol text fields) and
|
||||
[PR #1114](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1114) (sheets), both merged 2026-09-28. The
|
||||
[MCP server](mcp_server)'s `qet_items` lists every drawn item with its uuid.
|
||||
|
||||
### A sheet's wire defaults
|
||||
|
||||
> **Status: pending.** This section describes
|
||||
|
||||
+17
@@ -361,6 +361,13 @@ To add element label:
|
||||
2. Set the reference (e.g., "Q1") in the label field
|
||||
3. Confirm the dialog
|
||||
|
||||
**Values already used are suggested.** In the Informations tab, each field
|
||||
(manufacturer, supplier, reference…) offers the values other elements in the
|
||||
same project already use, as you type: matching ignores case and works
|
||||
anywhere in the text, so "ard" finds "Arduino". Pick one instead of typing it
|
||||
again. *Label* gets no suggestions, since a label names one element. Since
|
||||
[PR #1021](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1021) (bugtracker #217).
|
||||
|
||||
### Dynamic Text Fields
|
||||
|
||||
A dynamic text field can show a live value instead of fixed text — an
|
||||
@@ -371,6 +378,16 @@ See **[Variables & formulas](variables)** for the full reference — it's
|
||||
worth reading before guessing at a variable name, since an unrecognized one
|
||||
is silently left as literal text rather than flagged as an error.
|
||||
|
||||
**Resizing a symbol's text box by dragging.** Select a text of a placed
|
||||
symbol (its label, an information field, a composite text) and two handles
|
||||
appear at its left and right edges. Drag one to set the text's width; a
|
||||
rotated text resizes along its own direction. One undo step per drag, and
|
||||
undo brings back automatic width if that is what it had. The width field in
|
||||
the selection properties panel follows the drag. Free texts and texts inside
|
||||
the element editor have no width yet, so no handles. Since
|
||||
[PR #591](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/591) (discussion
|
||||
[#577](https://github.com/qelectrotech/qelectrotech-source-mirror/discussions/577)).
|
||||
|
||||
### Text Formatting
|
||||
|
||||
**Font & Style:**
|
||||
|
||||
Reference in New Issue
Block a user