Основное отличие между QApplication и QWidget в PyQt заключается в их функциях:
- QApplication — обработчик приложения, основной элемент всех приложений в Qt. 1 Для работы каждому приложению нужен один и только один объект QApplication, который содержит цикл событий приложения. 1 Этот цикл управляет всем взаимодействием пользователя с графическим интерфейсом. 1
- QWidget — базовый пустой виджет графического интерфейса. 1 На основе этого класса создаётся окно приложения. 2 После успешного создания можно, используя методы объекта, устанавливать разные параметры окна. 2
Таким образом, QApplication отвечает за работу всего приложения, а QWidget — за создание его окна.