3 ms·
That’s the case, yes – the UI runtime is Qt5 (which is rendered using low-level graphics APIs, so we class it as “native” – mostly in contrast to WebView-based
by LinguaBrowse 6y ago
That’s the case, yes – the UI runtime is Qt5 (which is rendered using low-level graphics APIs, so we class it as “native” – mostly in contrast to WebView-based UIs), and it’s the same API regardless of which platform you’re running on.
- ComputerGuru 6y agoI saw Qt and immediately understood what you were trying to say, but for the record: That’s not what native means. Native means “uses the platform widgets and drawing/theming api” and Qt is not native: it actually draws its own widgets (for the most part with certain exceptions on certain platforms) that are drawn to mimic the system UI with subtle differences. If the system UI implementation suddenly changes (say with an OS release) the Qt UI wouldn’t magically change with it. An example of native UI is libui or WxWidgets.
- avel 6y agoIs Qt considered native when you use KDE and not native when you use GNOME? Is Qt 3 considered not native when you use a KDE release that uses Qt 4 under the hood?
- quarantine 6y agoI would say so. Just like GTK is native on GNOME but definitely not on Windows. "native" (to me) really just means whatever the system is designed for.
- nine_k 6y agoThen Windows 10 apparently lacks a native GUI toolkit, because it's certainly not "designed for" just one. A similar thing happened to Android.
- gigel82 6y agoOne could argue Win32 is still the de-facto GUI toolkit in Win10. Things like .NET Windows Forms and (non-WinUI3) UWP are actually rendered with Win32 common controls.
- jart 6y agoWIN32 isn't de facto it is the canonical API for Windows. It always has been, since like the 1980's.
- ComputerGuru 6y agoIndeed, but with some exceptions. .NET SWF shipped with extremely kludgy drawn clones of toolbars and menu bars instead of using the native ones (although the native ones were later exposed) and the result is that those particular controls on SWF apps did not age gracefully (DPI problems, system theme mismatch, scroll acceleration issues, etc). That’s the kind of thing Qt would also face with drawn components skinned to look like the real deal.
- MaxBarraclough 6y ago> Then Windows 10 apparently lacks a native GUI toolkit, because it's certainly not "designed for" just one. Windows 10 has several native GUI toolkits. The same thing happened in MacOS, which transitioned from Carbon to Cocoa. If the widgets are drawn by a toolkit that isn't bundled with the OS, it's a non-native GUI. Of course, this isn't always a bad move.
- flipcoder 6y agoNative usually means standard or specific to the particular system. I would say yes to those questions.
- mrwoggle 6y agoReal question, what do some people mean with native C++? Or stuff like react native? Seems like it just equals more performance / peels away an abstract layer.
- heleninboodler 6y agoPart of the point of "native" is that each platform gets its own consistent look and feel and behavior for its own UI widgets. Back when I worked at Adobe, we had our own internal cross-platform UI framework for Illustrator/Photoshop and they were consistent across the supported platforms, but they didn't look like "native" controls, and that can end up being a pretty big headache (e.g. when accessibility and keyboard navigation don't just automatically work the way the native controls do, that's your problem to fix or punt). They also just generally look "different" and a lot of people consider that a bad thing.
- LinguaBrowse 6y agoReact Native does extend from platform UI components such as UIView, so that one at least is uncontroversially “native”.
- jart 6y agoYeah but Qt does it well enough that I consider it de facto native. It's not like Swing Java where they totally went their own way with the widgets.
- wruza 6y agoNativeness lies more in behavior than in looks. E.g. an input (an edit for old folks) has a very specific popup menu on every system, text selection works in a specific way (think what happens when you double/triple click, move with ctrl or lose or gain focus). Tab order and focusability is important as well. If they get that correctly, by e.g. using borderless system text areas or grabbing a menu from common control internals, it’s not a big deal if they draw some borders or animations by themselves. It’s just pixels in the end, sometimes better than native (which is just crap too often, like windows tables, lists, popdown controls). But really, native look and feel only left on macOS. Windows lost its traditions around vista, linux never ever had one true way to do UI, and browsers almost exterminated everything else.
- kuschku 6y agoSwings Platform LaF was still much closer than current browsers ever get.