Right after I started at Canonical, I met Mark Shuttleworth at UDS.
He asked me about Qt vs GTK+, and I nervously said that I preferred the GTK+ stack, finding it more complete. He was surprised, having heard the opposite from others. I recently asked an interviewee about Qt and GTK+, and he also said that he preferred Qt’s abstractions.
Bollucks.
On a widget-level, they’re both about the same. They both have data structure libraries, nice MVC layers, and a similar suite of built-in widgets. Pre-GIO, Qt had a leg up with a file IO abstraction. But that’s about all Qt had.
What GTK+ brings to the table is policy abstraction and system integration. The GTK+ stack gives us icon themes, system tray applets, how to launch files like the system does, printing support, and recently used file support. Qt doesn’t have a compelling answer for the above.
I wish I had said all that when Mark asked.