Лично я бы пошел на C ++ / Qt.
Причина моего уклона в том, что в отличие от GTK, Qt - это не только набор инструментов для пользовательского интерфейса, но и множество других функций, таких как работа в сети, доступ к базе данных,анализ XML ... который может принести вам большую пользу.И все это с непротиворечивым API.
Основная ошибка Qt состоит в том, что он заменяет стандартную библиотеку C ++ в том смысле, что у нее есть свой собственный классы list, string, map, hash ....У них гораздо более приятный API, чем у STL, и с ним (IMO) работать намного приятнее, но если вы изучите C ++ таким образом, вам будет гораздо сложнее вернуться к стандартному C ++, если вам когда-либо понадобится.
Если вы хотите получить краткое введение в ООП с использованием C ++ и Qt, см. Эту книгу (можно бесплатно скачать): http://cartan.cas.suffolk.edu/oopdocbook/