If you want a native one, probably Qt is the winner here.
Ask HN: What's the best library for making cross-platform UIs?
31–40 of 230 posts
Re: Ask HN: What's the best library for making cross-platform UIs?
#32Re: Ask HN: What's the best library for making cross-platform UIs?
#33I see nobody mentioned Juce. It is pretty neat if you like C++
In many cases I'd say that's not an issue, and JUCE is underrated/underused as a general-purpose UI toolkit.
Re: Ask HN: What's the best library for making cross-platform UIs?
#34Tk widgets look native on Windows and macOS (if you use the right ones — see [5]), though their behavior is implemented by Tk itself. On Linux it draws its own widgets in several styles; GTK and Qt theme support is immature. Lazarus and wxWidgets use native widgets on Windows and macOS. Both can use GTK2 on Linux but Lazarus also supports GTK1 and Qt.
If I had to deliver a cross-platform desktop GUI application by midnight today, I would go with Tk, write the code in Tcl (which necessarily has the best Tk integration) and package it in a static binary Starpack [6].
[3] http://wxlua.sourceforge.net/
[4] http://www.lazarus-ide.org/, http://wiki.lazarus.freepascal.org/LCL
Re: Ask HN: What's the best library for making cross-platform UIs?
#35Re: Ask HN: What's the best library for making cross-platform UIs?
#36I see nobody mentioned Juce. It is pretty neat if you like C++
JUCE is a great framework, has a very commendable coding style and is easy to get into. One thing to note is that the "JUCE way" of doing things is to have a UI that looks exactly the same on every platform - this is good for predictability, but if you want a UI that looks native , you're better off using Qt or wxWidgets (as C++ UI toolkits go). In many cases I'd say that's not an issue, and JUCE is underrated/underu…
Please explain!
Re: Ask HN: What's the best library for making cross-platform UIs?
#37Re: Ask HN: What's the best library for making cross-platform UIs?
#38It provides API layer which compiles to Win32 API on Windows, Gtk2 on Linux and Carbon/Cocoa on Mac OSX.
Qt only emulates Windows controls, but wxWidgets uses the actual Windows controls via Microsoft Win32 API.
BTW, there's wxQt, a wxWidgets implementation that uses Qt instead of Gtk, but it's still experimental:
https://wiki.wxwidgets.org/WxQt
wxWidgets has been used by some popular projects like Audacity, TortoiseCVS, RapidSVN, FileZilla, BitTorrent, etc.
Another wxWidgets advantage over Qt is the license, which gives you more freedom.
If you're looking for a faster start, take a look at wxFormBuilder which is a graphical WYSIWYG UI editor where you can drop controls in windows/dialogs and hook up event handlers.
You can find links to more related tools/IDEs on the Wikipedia page:
Re: Ask HN: What's the best library for making cross-platform UIs?
#39Earlier quoted context omitted.
JUCE is a great framework, has a very commendable coding style and is easy to get into. One thing to note is that the "JUCE way" of doing things is to have a UI that looks exactly the same on every platform - this is good for predictability, but if you want a UI that looks native , you're better off using Qt or wxWidgets (as C++ UI toolkits go). In many cases I'd say that's not an issue, and JUCE is underrated/underu…
commendable coding style Please explain!
It also encourages you to adopt a coding style that's consistent with the rest of JUCE, particularly in terms of memory management. This is one of the things that makes it a lot more "framework" than "library", and again might not be for everyone. Take a look at the "Object lifetime and ownership" section in this page: