Which framework should I use for cross-platform desktop apps?

0
5
Asked By MellowCedar42 On

I want to start building desktop applications for Linux and compare the experience with Windows. For work, I help maintain WinForms applications written in VB and C#, and I also have experience with Java, Python, and C++. I'm especially interested in using C++ for more practice, although I'm open to other languages.

The main options I've come across are Qt and GTK. I use Arch on my desktop and Fedora on my laptop, both with KDE, though I'm not sure how much the desktop environment should influence the choice. Ideally, I'd like to build applications that look and work well across different Linux desktop environments, or perhaps even support Windows and macOS too. Which toolkit would be the better starting point, and should I consider alternatives such as Avalonia?

5 Answers

Answered By SilverMaple88 On

GTK is primarily a C toolkit, while Qt is primarily designed for C++. Both can be used from other languages, but the difference is noticeable. GTK applications can work across desktop environments, although their appearance and theming may vary. Qt is generally the safer choice for a polished cross-platform application, particularly if Windows and macOS support matter.

Answered By CopperVale56 On

For a cross-desktop GTK application, be cautious about depending heavily on GTK 4 or libadwaita if you want it to blend into non-GNOME environments. Those technologies can impose a strong visual style and may not theme consistently elsewhere. In practice, making a Qt application look reasonable on a GTK-based desktop is often easier than making a GNOME-oriented GTK application fit perfectly into other environments.

Answered By BrightHarbor19 On

Qt would be my recommendation for this use case. It’s a large framework, but you don’t need to adopt every part of it, and it works well alongside the standard library. You can use Qt’s strings and containers where they help while still using STL types elsewhere. Qt Quick is worth learning if you want a modern interface rather than a traditional form-based layout.

MellowCedar42 -

That distinction between Widgets and Qt Quick is helpful. I’m used to traditional forms, but I’ll take a look at QML before deciding.

Answered By QuietRocket31 On

If your WinForms and C# experience is the part you want to build on, Avalonia is worth evaluating. It provides a cross-platform desktop UI framework with a fairly familiar .NET style and targets Linux, Windows, and macOS. If your main goal is learning C++, though, Qt remains the more direct option.

Answered By OrbitingPanda7 On

Qt is probably the strongest fit, especially since you want to use C++. It’s designed around C++ and has good cross-platform support, so the same application can target Linux, Windows, and macOS. KDE is also built around Qt, which may make the ecosystem feel more familiar. For the UI, look at both traditional Qt Widgets and the newer Qt Quick/QML approach. Widgets are straightforward for classic desktop interfaces, while QML is more modern and flexible, though it has a learning curve.

Related Questions

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.