What’s the Difference Between GTK+ and Qt?
Programming languages and toolkits are complicated topics. You’ve probably managed to use computers a long time without giving either much thought.
But when you switched to Linux, suddenly the issue became relevant. That’s because how well an app integrates with the rest of your desktop often comes down to one question: Was it made in GTK+ or Qt?
What Are GTK+ and Qt?
GTK+ and Qt are toolkits developers use to structure how an app looks and feels. These toolkits provide the buttons, toolbars, sliders, and menus you see when using an app.
Toolkits save developers time. Rather than having to code or design the size, shape, and look of every button, they can let the toolkit take care of this work. This frees them up to focus on the core functionality an app provides, such as editing documents or playing music.
The History of GTK+ and Qt
Haarvard Nord and Eirik Chambe-Eng began development of Qt in 1991. The name, which is pronounced “cute,” came about due to how the letter Q looked in Haavard’s Emacs font and the previous use of the letter t by Xt, the X toolkit already in use on Unix desktops.
Nord and Chambe-Eng would later co-found Quasar Technologies, which became Throll Tech, then Throlltech, and now exists in a different form as The Qt Company.
In 1995, Throll Tech released the source code for a version of Qt for Linux. But this did not meet the Free Software Foundation’s definition of free since people were not allowed to redistribute the code if they made any modifications. It wasn’t until 2000 that Throlltech gave users the freedom to freely edit and redistribute the code.
GTK+ began as the GIMP Toolkit, created by Peter Mattis as a replacement for the existing interfaced used in the GNU Image Manipulation Program. After a rewrite, the toolkit became GTK+ and saw release in 1998. Unlike Qt, people had the freedom to edit, modify, and share GTK+ from the beginning.
While Qt is in some ways a more versatile and adaptable toolkit, a community consolidated around GTK+ during these early years. It’s also worth noting that the non-profit GNOME Foundation now maintains GTK+, while a publicly traded company, The Qt Company, leads development of Qt. Still, at this point, neither toolkit is “more free” than the other.
GTK-Based Desktops and Software
If you’ve recently made the transition to Linux, there’s a good chance that you’re using a GTK-based desktop. That’s because many of the best Linux desktop environments all use GTK+.
Take GNOME, the default option on such prominent and well-established Linux OSes as Ubuntu, Fedora, and Debian. Then there are alternatives such as MATE and Xfce, which both offer lighter and more traditional interfaces.
Let’s not forget elementaryOS, a newcomer that caters more to recent switchers than long-time Linux users.
Many of the most popular open source apps integrate better with GTK-based desktops. This includes programs such as Firefox, Thunderbird, LibreOffice, and GIMP. Less prominent cross-platform GTK-based apps include AbiWord, Inkscape, and Pidgin.
There is a growing degree of diversity among GTK+ apps. Software designed specifically for GNOME may look out of place even on other GTK-based desktops. That’s because GNOME’s Human Interface Design guidelines discourage the use of menubars and introduce other less common changes.
Also know that many apps intended for elementaryOS aren’t available for other desktops.
Meanwhile, most of the aforementioned popular cross-platform GTK+ tools remain relatively desktop agnostic (which happens to mean they look out of place on GNOME and elementaryOS, due to the emphasis both place on having a unique design).
Qt-Based Desktops and Software
The KDE Plasma desktop is the oldest full-featured desktop environment for Linux. Were Qt fully open back in 1996, GNOME might not even exist. Over two decades later, the KDE community continues to provide the most feature-rich Linux desktop.
With so few other Qt-based desktops out there, many Qt apps are specifically designed for the Plasma desktop and may even depend on various KDE components. For this reason, KDE software integration is among the best of any desktop.
You can make interface tweaks that impact every app, or you can tweak one app in particular until it feels comfortable. That said, the Plasma desktop is not the only one that utilizes Qt. LXQt is one alternative that focuses on being lighter and simpler.
While some KDE software is cross-platform, these programs aren’t as well known outside of the Linux community. The most notable exceptions may be Krita and digiKam.
Not all Qt software is specifically designed for KDE. Such programs include the VLC media player and the Scribus desktop publishing app.
How Much Does the Difference Matter?
There are technical differences between GTK+ and Qt, but most of those are more of interest to developers than the rest of us. These days, the limitations are even harder to notice than they used to be. Thanks to excellent theming, many GTK+ apps now look right at home on the Qt-based Plasma desktop. Some of these apps look more at home on Plasma than in GNOME.
Meanwhile, you can also install Scribus or VLC on a GTK-based desktop without ever realizing there’s a difference behind the scenes.
But small incompatibilities do show up from time to time. Apps may open a different file picker window when you’re looking for a file to open. Tweaks to system themes may apply to certain apps but not others. The more you tinker around with your desktop, the more quirks may appear.
Ultimately, this question of whether to prefer GTK+ or Qt really comes down to choosing your favorite desktop interface and your favorite Linux apps .