C++/Qt 6 visual HMI designer for hardware engineers, built on FluentQtWidgets; opens PyQt UI Designer .uidp projects
翻訳待ち
Loading the full README.
Read the full README ↗FluentHMI Studio is a C++/Qt 6 rewrite of PyQt UI Designer: drag widgets onto a canvas, set their properties, bind them to serial, TCP, MQTT, UDP or CAN data, then export the design as a standalone app, with no compiler needed. Compared with the Python version, the download is smaller, it starts about twice as fast, exports take under a second, and it can update itself from inside the app (see Compared with the Python version).
Language: the interface is in English or Simplified Chinese (Settings → Language).
Drag widgets onto the canvas, and edit their properties and data bindings on the right:
The same project runs live once it is connected to a device, and exported apps use the same runtime (the data in the screenshot comes from a simulated MQTT device):
The 28 widgets in the light and dark themes:
A .uidp file is JSON. Give Claude, Codex or another AI your requirements together with this link, and it can write the project file directly:
https://raw.githubusercontent.com/txp666/FluentHMI-Studio/main/docs/uidp-format.md
The guide includes a working serial project that you can copy. For other devices, follow the relevant section on data binding and charts, connections and Modbus, sending commands, or CAN. Check the result with FluentHMIRuntime project.uidp --check, then preview and export it in Studio. Shared template and topic index · Widget property reference
The Custom device page on modusignal.cn opens, edits and runs the same .uidp with nothing to install: serial cards use the browser's serial support (Chrome, Edge), MQTT cards connect to the broker's WebSocket address and TCP cards connect over WebSocket. CAN, UDP, the image widget and the Modbus slave role work only in Studio, and apps are exported from Studio.
Both use the same project format, and their widget and protocol rules match:
.uidp (version 1.0) directly, and its widget types, property names, default values and enum options match PyQt UI Designer one to one. The projects in examples/ open, preview, and save back unchanged. Industrial pump station and feedback replayhr100) and a binding picks a register table and an address; pick a Modbus parser on the link card and bind a register address, and it is read automatically: nearby addresses are merged into blocks read at their periods, one request at a time, only for the controls on screen, with writes sent ahead of queued reads; FC16 writes int16, 32-bit integers and float32 values by data type.The differences are in how they are built and how they export apps:
| FluentHMI Studio 0.6.0 | PyQt UI Designer 0.6.0 | |
|---|---|---|
| Implementation | C++17 / Qt 6, compiled natively | Python / PyQt5 (Qt 5), packaged with Nuitka |
| Exporting an app | Copies a prebuilt runner and adds the project and images, about 0.3 s, no Python or compiler needed | Generates Python source, then compiles it with Nuitka; the downloaded designer needs Python and build tools installed separately to package |
| Preview and export | The preview and the exported app are the same runner, so the preview shows exactly what the export will look like | The preview runs inside the designer; the export is separately generated code |
| macOS package | One universal package, 32.7 MB (79 MB unpacked), for both Apple Silicon and Intel; exported apps are universal too | One package each for arm64 and x64, 51.7 / 60.3 MB (156 MB unpacked for arm64); packaging only builds for the local architecture |
| Windows package | 17.7 MB | 52.0 MB |
| Time to first window | 0.7–1.1 s | 1.5–2.2 s |
| Memory after startup | 71–85 MB | 126–137 MB |
| Updates | Checks, downloads, verifies and replaces itself in the app; can check at startup | Manual check on the settings page, which opens the download page when there is a new version |
This is the beginning of the README. Read the rest at the original. Read the full README ↗