GTK, GTK+, and Qt are GUI toolkits. These are?libraries?that developers use to design graphical interfaces, all running on top of the X Server or?Wayland. These are things that you need to install as dependencies. They're the Linux "equivalent" to Windows' GDI/GDI+. When an application uses any of these, it will usually have a general "look and feel".
GNOME and KDE are Desktop Environments. GNOME primarily uses the GTK+ toolkit, while KDE primarily uses the Qt toolkit. There are applications designed?for?GNOME or KDE, such as a settings menu or a default music player, usually in the appropriate toolkit. These Desktop Environments have a set of utilities/window managers/design specification to create a more unified desktop. You can mix the two if you feel like it, but you may run into issues with colliding standards and applications (which is a bit more common on systems like Arch).
Unity uses many of the GNOME utilities and backends (Nautilus, Rhythmbox, gvfs, etc.), so Unity is more GNOME than KDE.
One?A GNOME program uses multiple libraries to form a hierarchy:
The Gnome library is at the top level, including help routines, classes, and special widgets, and provides an infrastructure for your application.
The second layer is GTK, which is part of the GTK + library. This library provides a basic toolkit and widget to create GUI applications. Most GUIs are written directly with GTK. GTK also provides a powerful object system for the GNOME library.
The next layer is GDK, which is simply packaged with the X function library, which is only used when we make special drawings or set the special properties of the window.
The bottom layer is glib, a utility library for C, which includes portability and some utility functions, as well as some container classes, such as lists, variable groups, variable-length strings, hashes (seemingly Hassi), caching, an event loop, and other useful constructs
一般开发触及到 GNome 和 GTK/GTK+ 即可。