Ответ 1
Qt - это структура, а не библиотека. Это не является жестким и жестким различием, налагаемым языком программирования, а скорее описывает, как этот код разработан и предназначен для использования:
A library - это код другого пользователя, который используется вашим кодом. Использование библиотеки означает, что ваше приложение остается таким, как есть, у него просто есть другая библиотека, чтобы помочь ему.
A framework - это код другого пользователя, в который входит ваш код. Использование фреймворка означает, что структура определяет структуру вашего приложения.
Если вы используете фреймворк, вам нужно узнать, какие соглашения о структуре, которые могут немного отличаться от базового языка; в противном случае вы можете потратить много времени на борьбу с каркасом, и вам не хватало бы того, что он может предложить.
Qt, в частности, не похож на прямой ваниль С++, потому что он не является прямым ванильным С++. Он добавляет (ограниченные) расширения к объектной системе С++, чтобы разрешать такие функции, как сигналы и слоты; эти расширения реализуются с использованием Qt moc, который действует как препроцессор С++. Для получения дополнительной информации о расширениях Qt для С++: