Nie powstrzymałbym się od używania Qt tylko z tych powodów. Nie musisz używać wszystkich klas użyteczności Qt; w przypadku tych, które zastępują STL, będziesz co najwyżej zmuszony do użycia QString i ewentualnie QStringList. Ponadto program zwykle zawiera znacznie więcej niż GUI. Zawsze możesz używać wyłącznie ogólnego C ++ do końca programu, a Qt tylko do GUI.
Moim zdaniem praca z STL polega raczej na zrozumieniu, jakie podstawowe struktury danych są używane i ich złożoności, a tym samym w jakich momentach powinieneś używać każdego kontenera. A jeśli chodzi o programowanie w C ++, chodzi przede wszystkim o umiejętność korzystania z bardzo niezbędnego nagłówka <algorytm>, który powinien również działać na kontenerach Qt, ponieważ są one kompatybilne z STL.
Nie widzę żadnej szkody w korzystaniu z tych wszystkich rozszerzeń, które zapewnia Qt, o ile wiesz (lub przynajmniej masz ogólne pojęcie o tym) jak są one implementowane wewnętrznie. Upewnij się, że wiesz, że rzeczy takie jak Q_OBJECT, SIGNAL (), SLOT (), foreach (), nie są magiczne, ale makra, które rozwijają się do prawidłowych instrukcji C ++. Na przykład zrozumienie, w jaki sposób niejawnie współużytkowane klasy i relacje rodzic-dziecko, które sprawiają, że Qt wydaje się bardziej podobne do Javy, nie jest wcale takie skomplikowane. Zawsze możesz spróbować odtworzyć niektóre funkcje w osobnym projekcie, aby sprawdzić, czy możesz to zrobić za pomocą ogólnego C ++, a następnie nie czuć się źle, używając ich w Qt.
Spójrz także na biblioteki Boost. Zapewniają dodatkowe narzędzia, których nie ma standardowa biblioteka C ++, i są naprawdę dobrym sposobem na zbliżenie się do ogólnego C ++, ponieważ zasadniczo przestrzegają tych samych konwencji, co ogólny C ++. Niektóre biblioteki mają dość złożone klasy szablonowe, a samo po prostu zrozumienie, w jaki sposób działają, jest samo w sobie dobrym studium w C ++. Wzmocnienie ma wiele narzędzi, których nie można znaleźć w Qt, a inne, które implementują takie same lub podobne pojęcia jak niektóre klasy Qt i mogą być używane zamiast nich.
Jeśli trafisz na rynek pracy, pracując z C ++, istnieje szansa, że będziesz pracować z Qt lub innym frameworkiem, który podobnie jak on, będzie miał własne klasy narzędzi, które starają się uprościć C ++.