3 ms·
I hear this a lot, as a contrast to Electron, but I haven't seen any examples of good cross-platform Qt apps. The only Qt app I've used recently is VirtualBox,
by ken 8y ago
I hear this a lot, as a contrast to Electron, but I haven't seen any examples of good cross-platform Qt apps.
The only Qt app I've used recently is VirtualBox, which is terrible on the Mac. The controls don't look or work right at all. On Windows, it's less bad, but still noticeably non-native.
I searched the web and found that Google Earth Pro also uses Qt, so I downloaded that. It looks awful, too. The scrollbars, split panes, buttons, and toolbars look wrong. Checkboxes are drawn mangled, animation is absent, and the outline view doesn't size its rows correctly so the bottom half of text is cut off. Despite language being "System default" in the Earth prefs, and English being the top language in my System Prefs, part of the UI is in Japanese (my #2). The view right after launch: https://i.imgur.com/eDvSoUm.png https://i.imgur.com/eDvSoUm.png
I think a good first step would be looking at existing Qt apps. Are you OK with the quality of apps like VirtualBox and Earth? Alternatively, do you think you can do a better job at this than Google and Oracle?
I think if you're planning to write a typical Qt app, in order to make 'native app' fans happy, you're going to be in for a surprise.
- cpburns2009 8y ago> The only Qt app I've used recently is VirtualBox, which is terrible on the Mac. The controls don't look or work right at all. On Windows, it's less bad, but still noticeably non-native. On Windows and Linux (primarily Ubuntu), KeePassXC, VirtualBox and VLC have been pretty good in my experience and they're Qt as far as I know. Dropbox uses Qt as well, however, it's interface is minimal. Electron doesn't even try to look or behave natively for what it's worth.
- ken 8y agoCurious. VLC on MacOS doesn't exhibit any of the weird UI glitches that other Qt apps have, and an inspection of the package shows it doesn't contain any Qt frameworks. VLC's Wiki [1] says: "Qt / Qt4 is the default, plain, graphical, interface to VLC, made using the Qt library (Linux users may need to have this installed). It is used as the default interface on the Windows and Linux versions of VLC media player from version 0.9.0 and above." [1]: https://wiki.videolan.org/Qt_Interface/ https://wiki.videolan.org/Qt_Interface/ I googled for "dropbox mac qt" and only found this page [2] from 2014 which says they were experimenting with rewriting the Dropbox UI in Qt for Linux and Windows. The linked post [3] says the Qt rewrite is for Windows and Linux only. [2]: http://www.webupd8.org/2014/07/dropbox-ui-rewritten-in-qt-for-latest.html http://www.webupd8.org/2014/07/dropbox-ui-rewritten-in-qt-fo... [3]: https://web.archive.org/web/20141015093406/https://forums.dropbox.com/topic.php?id=118006 https://web.archive.org/web/20141015093406/https://forums.dr... I consider Qt (along with Gtk+) to be native on Linux -- there's no more-native toolkit that it's wrapping or emulating. So I find it interesting that these cross-platform applications (Wikipedia lists 9 platforms for VLC!) both use Qt for only 2 platforms, and 1 of those is where it's native, anyway. These are mature applications which have clearly put a lot of effort into both user experience and cross platform support, and they have already gone to the trouble of implementing their UI in Qt, but for most platforms they choose not to use it. What I get from this is: Qt is useful as a cross-platform GUI toolkit only for targeting Windows. Is that overly cynical?
- cpburns2009 8y agoIt's interesting that it seems Qt is not used to target Macs. Perhaps Qt really is only good for cross-platform development on Windows and Linux.
- therockhead 8y agoThe only Qt app I use on macOS is Viber, it looks pretty bad and non native.
- flukus 8y ago> The controls don't look or work right at all. On Windows, it's less bad, but still noticeably non-native. And how native do the controls on electron apps look? IME these apps always look completely alien and won't use the native controls with the native theme. I see this criticism frequently and it seems like people hold Qt to a higher standard than electron and then dismiss it because it doesn't meet that higher standard.
- ken 8y ago> And how native do the controls on electron apps look? Completely custom -- but at least they're not chopping off the bottom 2/3 of a line of text. I hate Electron as much as anyone, but I really don't understand how being able to read all the text in a user interface could be considered an unreasonably high standard for a software program.
- flukus 8y agoA single and likely application specific bug doesn't demonstrate much. Having the wrong language for that entry is likely a google earth problem, not a qt one, the text cutoff could be a number of things, like the developers manually setting max height, in which case you'd see similar results of the did the same in electron/css, gtk or just about anything else.
- ken 8y agoTechnically true -- which is why my original question was: is there any example of a good cross-platform Qt app? Of the examples I've seen posted, half have exactly the same weird UI bugs, and the other half turned out to not be Qt at all. I'll grant that it is possible that Qt is perfectly fine at cross-platform GUIs on all of its supported platforms, and all these poor examples can be explained by (a) these particular developers simply did a poor job, (b) they all failed in the same way (maybe there's a flag to make all Qt controls look and act non-native, which they set by accident?), and coincidentally also (c) everyone writing good cross-platform apps happens to limit their use of Qt to just Windows and Linux, for completely unrelated reasons. I'm of course skeptical, but I grant this is all possible. Even if so, I maintain that it's still an unnecessary engineering risk to use a tool for a task where you've never before seen it used well and successfully. Besides, I disagree that bugs like drawing checkboxes wrong (until you resize the window) are "likely an application specific bug". I've never seen any other GUI toolkit mess up drawing checkboxes. That's just fundamental. I don't even know how I could screw that up using any other toolkit.
- dman 8y agoDo you hold Electron apps to the same bar? Do they resemble Mac apps?
- ken 8y agoElectron apps look and act oddly, in a different way, and no, I don't have any installed. I only have one Qt app (VirtualBox) installed, because it's the only free virtualization system I know of. I only use it via Vagrant, so I never have to see it.
- andrewf 8y agoI shipped a commercial app on Qt in the early 00s. The Mac port just never nailed the finer UI details to the same standard as Qt/Windows and Qt/Linux. Qt's customers ended up being the embedded market and phone vendors, I don't think their Mac port was ever adequately resourced. I'm happy Qt/Mac exists, it made our Mac port commercially viable, and a couple days of polishing work would make the UI "good enough". If we'd done continuous deployment it would have been annoying.
- gusmd 8y ago> Alternatively, do you think you can do a better job at this than Google and Oracle? Not sure what this "appeal to authority" is supposed to mean. I've seen -- and worked on -- many high-quality Qt applications. Granted, I'm not a Mac user, but on Windows and Linux they can look just as good as any other "native" applications. "I think a good first step would be looking at existing Electron apps. Are you OK with the quality of apps like the Slack client and Microsoft Teams? Alternatively, do you think you can do a better job at this than Slack and Microsoft?"