我从未使用过GTK,但根据我使用Qt的个人经验:
它远不止简单的GUI。 这是一个完整的应用程序框架。 我曾经把它想象成C ++的Java库。 它提供了您提到的所有内容 - 数据库,XML,网络和线程等。 它还提供诸如容器和迭代器之类的东西,以及许多boost库的对应物。
在开始使用Qt时给我留下最深刻印象的是极其广泛的文档。 您将获得一个名为Qt Assistant的程序,该程序在您的桌面上提供完全索引和可搜索的API文档,以及大量代码示例和教程。 我发现每次在网上搜索API信息都会产生很大的不同。 当您需要记住方法签名时,可以非常快速地访问。
我不确定哪种是最常见的; 这可能很难准确衡量。 他们当然都很受欢迎。 由于Gnome是Ubuntu的默认桌面,而Gnome位于GTK之上,因此它显然具有广泛的用途。 当然,KDE也很受欢迎。 诺基亚在移动领域大力推动Qt - 例如,在新的N900上使用的Maemo OS很快将切换到Qt作为默认工具包(目前它是GTK。)我相信Qt也将很快成为默认的工具包 Symbian操作系统。
我没有使用过Qt Creator,但我听说过很多好事。 它是一个与Qt明显高度集成的C ++ IDE。 它还有虚假的vim仿真,如果你喜欢那种东西总是很好!
Qt使用qmake进行构建配置。 我发现这比编写自己的makefile要好得多。 我不知道GTK用于构建什么。
我最初发现Qt的一些事情是它对预处理器宏的大量使用。 信号/插槽系统为您的应用程序中的事件/消息传递提供了一个很好的机制,但它确实感觉有点像魔术,如果您愿意,可能无法轻松移植到其他工具包。 moc(元对象编译器),虽然我不完全确定它的作用,但感觉有点太像魔术在幕后发生了。
总而言之,我会推荐Qt,特别是如果你正在学习。 它有非常棒的文档和一个很好的IDE,以及繁忙的论坛。 您将能够非常快速地构建C ++应用程序,特别是使用4.7中的QML。