I've noticed that GTK has a uniform feel across all platforms, which is great for Linux lovers, but not so great for people who prefer their native GUI feel.
I haven't used Qt properly yet, which is why I'm unable to say that this is the best choice to provide the most native feel for each platform - so could someone please confirm whether Qt is what I'm after?
Flutter: The First Choice for Cross-Platform GUI Development.
If you are comparing wxWidgets with Qt, wxWidgets literally stands no where. Qt is a complete framework where you can write code and generate GUI for Linux, Windows, MAC, Android, IOS and even blackberry, and other embedded systems.
wxWidgets is a C++ library that lets developers create applications for Windows, macOS, Linux and other platforms with a single code base.
UI is a C++ User Interface (GUI) Boost library that is cross-platform, uses native system-provided widgets, has STL-like and Boost-like API, is compatible with other Boost libraries and supports modern C++11/14/17 features.
I think Qt is a great choice to have a native look.
On Windows XP, widgets will be rendered with the Luna style (Windows XP default style). On Vista/7, they will be rendered with the Aero theme. On MacOS, they will be rendered with the Aqua theme.
On Linux, it's different. Qt will use his own theme (Plastique style) or use your KDE theme (Oxygen theme for example). If you prefer GNOME or XFCE (GTK), Qt can also use your GTK theme.
A Qt application can be perfectly integrated in Windows XP/Vista/7, MacOS, KDE, GNOME and XFCE desktops.
Wxwidgets uses the underlying platform to draw widgets (GTK under Linux, MFC under Windows...), so not only it looks native, but it is!
Edit - For Mac, wxWidgets uses Carbon, and is currently transitioning to Cocoa for 3.0.
Edit2 - I did not use QT myself, but people around me that used it liked it a lot. On the QT application that I've used under Windows, I have felt less native, with somewhat poorer integration with the desktop, but it could just be a reflexion of these particular developers skills.
Although wxWidgets has its quirks (somewhat poor integration on the STL, MFC-like events, sometimes hard to grasp box options, limited wxGrid...), they are being worked on, and the system is getting better and better (the new wxAUI docking widgets are awesome).
Finally, wxWidgets has been remarquably good at staying off my way when I did not need it, allowing me to use it precisely for what I wanted and nothing more. I was for example able to plug extremely easily my own socket code into the event system.
My feeling is that wxWidgets and QT are pretty much comparable, and going to one or the other will be mainly about personnal fit.
Out of Qt and WxWindows from a clean slate I'd go for WxWindows - simply because it uses the native controls which gives you better support on future platforms.
I arrived at this decision by the following unscientific process:
For me, the above is easily enough to go with WxWindows as a first choice and see where I end up after a while.
Worth mentioning that I've been doing a lot of XAML and so I'd definitely be looking into using XUL instead; as it is much nicer to get the layout out of the code.
As a footnote years ago I developed an application using the thankfully long-dead and dreadful ZincApplicationFramework - which layers it's own controls ontop much like Qt. It was dreadful and I spent ages messing about with the internals to get it to work right under Windows. This makes me prejudiced, or a least skeptical, of anything taking the same approach, because shortly after this project finished I used Allegris C++/Views to create another application, and this was much better because it was a very thin layer above the native controls - which meant that it was easy to do things and a lot more efficient.
So I may have a preference towards thin layers and native controls....
Yes, I believe it is. Qt tries had to follow the native look&feel. Not only how the widgets look, but also things like button order, etc. Of course building an application that really follows all native UI conventions is going to be hard (the Mac UI design is very different from Windows, for example), but Qt will help you a lot with it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With