Деструктор MainWindow не вызывается.
Так проблема в том, что не вызывается деструктор MainWindow?
А если "руками" удалить объект QAxWidget, то все нормально выгружается?
В общем так.
В класса MainWindow в протектед - указатель на QAxWidget.
Один слот создает экземпляр QAxWidget, второй удаляет. Дальше пытаюсь закрыть главное окно крестиком и вижу, что в деструктрор MainWindow мы не приходим. Окно тем не менее скрывается, но процесс остается в памяти и студия ждет его завершения. Приходится останавливать дебаг руками.
Далее, если я создам экземпляр QAxWidget в конструкторе MainWindow и установлю его в качестве центрального виджета, то закрытие по крестику главного окна вызовет деструктор и процесс нормально завершится.
Я от такого поведения в замешательстве.
Добавлю еще следующую вещь. В качестве ActiveX сервера создается опять же главное окно. То есть получаем главное окно вложенное в другое главное окно во втором случае, а в первом - из главного окна создается новое главное окно.
Подозреваю, что проблема в том, что новое главное окно имеет свой цикл обработки сообщений и он не завершается. Но это так, предположение.