Я достаточно широко использовал GTK и Qt в C ++, а также PyGTK и PyQt в Python.
Qt опережает GTK - это гораздо более гибкий, современный и чистый API. GTK также не хватает некоторых функций, которые важны для меня. С точки зрения фреймворка, я бы порекомендовал Qt.
Что касается языковых привязок (я могу говорить только о Python, поскольку я никогда не использовал эквиваленты Ruby), я думаю, что PyGTK (использующий Glade и обертку типа Padraig Bradys libglade ) делает программирование GUI безумным легко и весело. Однако, если вы можете использовать GPL для своего программного обеспечения (или оплатить лицензионный сбор), то PyQt также является хорошим вариантом, и, хотя он не так дружелюбен, как PyGTK + Glade (в этом случае с GTK вы можете определить свой пользовательский интерфейс в Glade как отдельный XML файл, так что вы можете настроить интерфейс, не касаясь кода; в Qt, если вы хотите использовать QtDesigner, вы должны генерировать код, используя uic, если я правильно помню), сам API действительно очень удобно использовать и отражает чистый дизайн фреймворков Qt очень тесно.
В целом, я бы, вероятно, рекомендовал использовать PyQt вместо PyGTK, но я могу быть предвзятым, поскольку в настоящее время я гораздо больше предпочитаю Qt, чем GTK, хотя вы можете попробовать оба варианта и посмотреть, что вам больше по душе - они оба почти тривиальны, чтобы начать работать .
Если вы ищете отличную книгу по PyQt, я бы порекомендовал Быстрое программирование GUI с Python и Qt .
Подводя итог: IMHO Qt превосходит GTK как по качеству, так и по возможностям. Как PyGTK, так и PyQt имеют превосходное качество и возможности, отражающие базовую платформу, хотя PyGTK может загружать XML-файлы Glade.