Qt Creator больше не отображает вывод консоли в окне вывода приложения после обновления Windows 10 1809 - PullRequest
0 голосов
/ 11 июля 2019

Я запускаю приложение в отладке с Qt 5.2.1 и Qt Creator 4.5.0. В течение многих месяцев это было хорошо, и вывод консоли отображается в окне «Вывод приложения». Я применил обновление 1809 к Windows сегодня утром, и теперь я вижу только детали исключений в окне вывода, и ничего больше.

Интересно, что когда я запускаю в терминале, вывод выводится в командном окне. Это также показано, если я "Запустить" (Ctrl-R) приложение. Также кажется, что все в порядке, когда я запускаю тесты для приложения с более поздней версией платформы Qt (5.12.1, в моем случае).

Кто-нибудь еще испытывал это? Я даже не уверен, с чего начать с устранения проблемы.

РЕДАКТИРОВАТЬ: Больше информации. Я посмотрел на источники Qt 5.2.1 и увидел, что qDefaultMessageHandler не выводит сообщение, если к процессу присоединено консольное окно (как и следовало ожидать, например, если вы выбрали «Запуск в терминале»). Если я вызываю FreeConsole () в начале моего приложения, то вывод выводится так, как раньше в окне «Вывод приложения». Это говорит о том, что при обновлении до Windows окно консоли было выделено для процесса отладки.

1 Ответ

1 голос
/ 11 июля 2019

Это может быть ошибка в Qt 5.2, особенно если он работает с более поздними версиями Qt.

Правильный ответ: обновить до более поздней версии Qt. Причина в том, что поддержка Qt 5.2 закончилась более 3 лет назад.

Вы должны использовать одну из поддерживаемых в настоящее время версий: 5.9.8, 5.12.4 или 5.13.0.

Обратите внимание, что 5.9 и 5.12 являются LTS, но поддержка 5.9 должна закончиться в следующем году. Так что 5.12 кажется наилучшим вариантом, если вы не хотите обновляться каждые 6 месяцев.

Редактировать

Если по какой-либо причине вы не можете обновить рабочую версию Qt, вы можете, по крайней мере, обновить Qt Creator в своей системе и обновить свою версию Qt для разработки.

Допустим, вы используете Qt 5.9 или 5.12 на своем компьютере, когда пишете и тестируете код. Но сохраните 5.2.1 для любой другой части цикла разработки (тестирование, CI, ...) и для производства.

Qt предлагает отличную совместимость между версиями, если вы напишите код, который компилируется для 5.2, он скомпилируется без изменений для любого 5.x с x> = 2.

...