6 ms·
Any good alternatives to Qt? I remember looking into the cross-platform desktop development landscape a while ago and being disappointed by the options (Qt, Gtk
by s1t5 6y ago
Any good alternatives to Qt? I remember looking into the cross-platform desktop development landscape a while ago and being disappointed by the options (Qt, Gtk, Electron).
- jhasse 6y agowxWidgets. Also - while a lot more low-level - Skia. Sublime Text/Merge and Aseprite are using it.
- BiteCode_dev 6y agoI love this one: simple, light, good Python bindings, decent cross plateform support and not hard to install. But show an app made with it to anybody below 30 and they will call you an ancient fossil. If something doesn't have transition and gesture nowaday, you better market it to accountants because the general public won't want it.
- bjoli 6y agoIf the app is free, I would just politely ask such users to eff off. On the other hand I am probably as far away from iPad-damaged demographic that you can come: Emacs isn't enough of an OS, I have to leave it a couple of times a day and I hate every single minute of it. Everything I do on a computer, apart from the odd movie I watch, is centered around information in text form, yet literally every program except decent text environments try their best to ruin working with text. The only place where I think a non-text-based ui actually adds something is in calendar applications, yet most of the suck as well. So I sit here alone with the marvel that is 1980s technology, thinking most things regarded as "modern" in computing are a farce. The only new general purpose tool I can stand is VSCode, where my o my critique is that it isn't emacs (and that multiple cursors are a decent but not a great replacement for macros)
- red2awn 6y agoSublime doesn't really use Skia anymore, as per this (https://news.ycombinator.com/item?id=23312357 https://news.ycombinator.com/item?id=23312357) comment.
- abjKT26nO8 6y agoAre there (even non-cross-platform) toolkits that provide better developer experience than Qt?
- varelaz 6y agoIn most cases alternative is a web product. I hardly install new soft, only if reason is very strong.
- novalis78 6y agoDisappointed how?
- gindely 6y agoElectron is slow and lethargic. Even the highly optimised VS Code makes me switch to gvim several times a day because input doesn't go in sequence; it seems to process easier input first rather than earlier input first. You can use Gtk to make executables on Windows and MacOS, but it's not comfortable and the resulting guis are ugly. They do not take advantage of the full provisions of the platform. Gtk is less cross platform, and more a foundational Gnome library that someone has ported to Windows and MacOS. No support for two major operating systems. Qt I can't speak to. WxWidgets seems to be a little .. dated. The screenshots on their website look like programs that were acceptable for a technical user 15 years ago. Has it moved on from that? Dunno. No support for two major operating systems.
- Ingon 6y agoInstead, I’m looking for a static, strongly typed language, that gives me native bindings for each platform’s gui. I think I’m fine with doing the abstraction bit myself, where and when needed. Any recommendations? Last time I had to do a gui, I chose JavaFX, and it was fine. But I’m still looking for native options, even if I have to implement the ui 3 times. Edit: to clarify, I’m looking for something beyond C/C++
- capitol_ 6y agoI'm amazed that it has been 15 minutes and noone have said Rust yet ;) It you want to explore the Rust option, here is an overview of the status of GUI toolkits in Rust: https://areweguiyet.com/ https://areweguiyet.com/
- VHRanger 6y agoD, go, or rust
- mehrdadn 6y agoI think wxWidgets has binding for other languages like Python?
- skriticos2 6y agoUnless you consider HTML5 in the browser, the options are quite limited (I guess you do, as you included Electron). GTK is always GNOME first and has issues most other places or just looks ugly. wxWidgets always looked off and had the weirdes issues. Qt (or at least QtWidgets) was fairly solid in design and implementation. Then they kind of put that on ice and started with a second GUI framework (QML) that didn't fit together whatsoever. Now it has a split personality and the widgets part has a hard time to keep up with modern problems like high-resolution screens and and scaling (I'm writing this from KDE, so I know first hand). Then everyone tried to re-invent the user interface paradigm and that's how we ended up in the current mess. Consistent buttons, input boxes and frameworks were replaced by flashy but fairly unusable interfaces, which of course did not work out. So now we have this weird mix of not letting go and not knowing where to go. You could go very old school though, with something like http://www.fox-toolkit.org http://www.fox-toolkit.org or https://www.lazarus-ide.org/ https://www.lazarus-ide.org/
- mehrdadn 6y agoIn what way does wx look "off"? To me Qt is the one that looks "off"... it doesn't feel native. But wx looks and feels like any native app... because it uses native controls...
- viraptor 6y agoWx is native, but you really need to pay attention to what are the defaults on your platform. Wx either doesn't have those, or they don't align that well with other apps in the system, which is where the "off" feeling may come from. If you spend time designing it to look nice, it will look nice - but it doesn't exactly go out of its way to help you. Then ensure the same for each platform you target. (My experience, YMMV)
- skriticos2 6y agoYes, pretty much this. The last time I tried it, the platform had a dark theme style that wx tried to apply, but then ended up with light grey borders within the dark parts of the widgets and there really wasn't a simple solution - there was an unresolved bug ticket.
- varelaz 6y agoI know that JetBrains are using Java Swing for their IDEs and they look pretty native on OS X and Windows
- oweiler 6y agoYou may want to consider JavaFX, which nowadays supports creating binaries with GraalVM.
- billfruit 6y agoMay be JavaFx, though their documentation is not very extensive.
- Ingon 6y agoSome of it is just well hidden. For example, there is no direct link to the CSS reference, but if you browse through the Java doc, you find https://openjfx.io/javadoc/14/javafx.graphics/javafx/scene/doc-files/cssref.html https://openjfx.io/javadoc/14/javafx.graphics/javafx/scene/d....
- app4soft 6y ago> Any good alternatives to Qt, Gtk, Electron? wxWidgets? For audio-related software (such as Helio Workstation[0]) there is JUCE.[1] [0] https://github.com/helio-fm/helio-workstation https://github.com/helio-fm/helio-workstation [1] https://en.wikipedia.org/wiki/JUCE https://en.wikipedia.org/wiki/JUCE
- jcelerier 6y agoFor reference I'm developing https://ossia.io https://ossia.io in Qt (widgets), it does not pan out too bad I think (https://raw.githubusercontent.com/OSSIA/score/master/docs/score.png https://raw.githubusercontent.com/OSSIA/score/master/docs/sc...)
- app4soft 6y agoLooks nice! Will try your AppImage builds tomorrow ;)
- app4soft 6y agoFYI, OSSIA failed on start under Debian 10 :/ $ ./score-v3.0.0-a4-Linux.AppImage Illegal instruction
- jcelerier 6y agoyeah, I was a bit ambitious and required an AVX cpu for the alpha but you're the second person with a CPU without even SSE4 in less than two weeks so I'll revert to a SSE2 baseline :/
- jstimpfle 6y agoI'm just doing stuff myself, using C with OpenGL and some platform code. I can already target the web using emscripten. I'll be able to compile to Android in the future. It is a tough learning curve but I'm starting to see the light. Depending on your application, completely self-contained GUIs don't actually need that much code - it's mostly the knowledge of how to architect them. A hard problem is how to approach construction of Widgets and hierarchies of control elements. The traditional OO centric approach is far too much boilerplate to be practical without a huge third-party library, but the Immediate GUI approach which got talked about a lot recently is maybe a little simplistic. I think I've found a good middle ground between "immediate" and "retained".
- fctorial 6y agoThat would require knowledge of every platform specific graphics stack (wayland, win32, cocoa, ndk). How is this a feasible approach? Are you making your own custom cross platform framework?
- jstimpfle 6y agoNo I'm just doing OpenGL. This is about cross platform - I don't really use the platform specific fuss. I need a window to draw to, and maybe a little file writing or networking code. I don't do Macs so far, so I can't tell you about that. I have a little boilerplate for setting up a window and getting input events for X11 (Linux) and Win32/GDI. It's about 300-400 lines each. You can opt to use GLFW3 instead to target all the big platforms with a single file that is also 300-400 lines. Mac is supported, too. I have mostly ceased to use GLFW since I prefer to code the stuff myself to have absolute control in case I need it, and to understand the issues of the platforms I have dealt with - but frankly GLFW is a very good and sleek library to get an OpenGL window and some inputs. Getting to the web using emscripten was similar. They support an older GLFW2 API so it was a matter of maybe 30 minutes to convert my GLFW code to run on the web. They also have a HTML5 API (html5.h) which is probably better, so I expect to add another couple hundred lines later at some point for that. Emscripten / the Web required me to port my desktop OpenGL code to OpenGL ES 3.0, which was quickly done and a very good idea to do anyway. And after all, the OpenGL rendering backend code is not that big either if your architecture is right. Mine is currently 700 lines, and it supports solid faces, textured faces, alpha-channels, subpixel font rendering - all of course for 2D and 3D.
- MaxBarraclough 6y agoI still think the FOX Toolkit deserves another chance. A lightweight C++ GUI toolkit for Linux and Windows. But I can see that the hard-coded Windows 95 theme, lack of modern browser integration, and little recent activity (but non-zero), might be off-putting. http://fox-toolkit.org/screenshots/iims3.png http://fox-toolkit.org/screenshots/iims3.png edit Too late I see skriticos2 already mentioned FOX.