3 ms·
wxWidgets are a perfect choice if you want cross-platform native controls. Just a reminder, Qt doesn't use native controls, it just emulates the native look and
by gen2brain 4y ago
wxWidgets are a perfect choice if you want cross-platform native controls. Just a reminder, Qt doesn't use native controls, it just emulates the native look and feel. Besides wxWidgets I know only IUP that uses system native controls (though Cocoa is a work in progress), and IUP deals with just UI, wx is like a Qt, a lot more.
- mwcampbell 4y agoEclipse's SWT for Java also uses native controls, and IIRC it does so more consistently across platforms than wx. In 2015 I wanted to develop a desktop app in Python, but use SWT, so I did a hacky mongrel setup where I used the pyjnius Python package to load the Avian lightweight JVM into my CPython process so I could use SWT. Avian is dead now, so if I ever have to port that app to ARM64 for Apple Silicon Macs (right now it runs fine under emulation), I'll be in trouble. But at least for now, the app has a reasonably lightweight cross-platform UI.
- fayten 4y agoI'm working on a native wrapper for SWT with GraalVM. The resulting library with base SWT is about 18M, which is fairly large, but definitely workable. I have successfully used the wrapper from C and Zig as a proof of concept. The main goal was to originally expose SWT for Nim, but I got pretty side tracked. I'll probably make a show HN later this year when I have it in a usable state. I haven't gotten callbacks working quite yet, which makes it pretty useless. I'm a bit worried about performance, but I'll throw a cassowary constraint manager on top of a ton of widgets and see how it does. Memory usage with an empty window is ~35mb at 1920x1080. It successfully works on Windows, Linux, and MacOS x86 and aarch64.
- benibela 4y agoOnce I started building a GUI wrapper that could either use SWT or AWT as backend (or perhaps Swing rather than AWT, i do not remember). I do not remember why. Perhaps I thought it will be more portable or performant. But I quickly abandoned that (would not want to get stuck on a legacy tech like java and awt) and ported all my projects to Pascal for maximal performance.
- benibela 4y agoThere is also Lazarus
- wahern 4y agoAlso Yue, with bindings for C++, JavaScript, and Lua: https://libyue.com/ https://libyue.com/ I haven't used it for Gtk or Windows, yet, but macOS support seems at least as good as the other targets.