Я просто работал над этим примером несколько дней назад.Итак, вот вывод, почему я думаю, что они вам нужны:
Я предполагаю, что если вы посмотрите в файл .pro, вы увидите строку, которая выглядит следующим образом:
QT += core
QT += gui
Итак, вы говорите транслятору Qt и компилятору, что вы используете модули QtGui и QtCore, и в этих модулях вы определили QAction и т. Д.Таким образом, в качестве «хака» (поскольку их IDE не может обнаружить это автоматически до более поздней стадии процесса компиляции), вы предварительно объявляете классы, чтобы избежать ошибок на этапе компиляции.В конце концов, Qt вставляет модули, и все работает нормально.
Это вызвало у меня головную боль, когда я впервые сделал это, но это было единственное логическое объяснение, которое я мог получить.
Есливы не объявляете класс заранее, вы получите сообщение об ошибке, в котором говорится, что он не может найти ссылку на класс и т. д.
РЕДАКТИРОВАТЬ: в свете вашего недавнего обновления я предлагаю перейти наYouTube и поиск пользователя под ником: voidrealms .У него есть достойные видеоуроки C ++ Qt с объяснениями, и там он также показывает QMenu, QAction и т. Д. Он имеет более 150 видео по программированию на Qt C ++ и охватывает все: от базового Hello World вплоть до сетевого программирования и даже дальше ...Проверьте его, у него есть и другие учебники