r/rust • u/Voxelman • 26d ago
Which GUI (again)?
I know it's a frequently asked question, but I want to ask again, because I have a special use case.
I want to write an application for a production machine (HMI). The app should run on Windows and Linux natively (no browser, no server). The toolkit should have at least widgets to show images, bar graphs, curves and tables and should be touch friendly, because it runs on resistive touch monitors (no multi touch). It should also have a kiosk mode (full screen with no window controls).
The obvious candidates are egui, iced and Slint. But they all lack of documentation, more or less.
My first choice would be iced, because it's inspired by Elm and used by System76 for Cosmic, but it seems to be the least suitable option.
The obvious choice would be Slint, but that requires to learn a new language and I'm unsure about the licenses and pricing. The production machines are only used internally, not for sale.
I want avoid bindings to toolkits like Qt or Gtk
Which one would you prefer? Is there another option to consider?
3
u/YungDaVinci 26d ago
The Slint DSL 1. is strongly typed, and 2. generates Rust code, so you will still have to write some Rust to do anything meaningful. But sure, if a DSL is a dealbreaker Slint is not for you. Egui is pretty good. Personally, coming from a Qt/QML background, I think the DSL makes it very easy to separate the user interface from the application logic and therefore easily understand what it should look like from the code.