Не видит вывод из qInfo()
Я новичок в QT, я импортировал проект, созданный кем-то другим, и он компилируется и работает на версии QT Creator для MinGW. Но есть небольшая проблема, которую было бы намного проще диагностировать, если бы я мог видеть выходные данные отладки.
Повсюду есть строки типа "qInfo() <<" debug message ";", но я не вижу никаких выходных данных в окне вывода приложения, когда я запускаю проект в режиме отладки, когда я понимаю, это должно быть. Все, что я вижу после запуска программы:
Отладка начинается Отладка завершена
Что я пробовал:
Удостоверился, что используемый комплект - это отладчик QT и mingw, которые пришли с установкой
Поместите ifdef с "#undef QT_NO_INFO_OUTPUT" вверху main.cpp
Добавлено включение QtDebug во все файлы заголовков
Еще ничего.
Что я делаю неправильно?
Имейте в виду, что я новичок в Qt, возможно, одна из вещей, которые я пробовал, я не реализовал должным образом:S
Спасибо!
1 ответ
qInfo() qDebug() и т. д. все возвращаются к функции, которую можно переопределить. Убедитесь, что это не сделано в любом месте проекта (глобальный поиск "qInstallMessageHandler"). Если он не реализован, определите его самостоятельно так:
void debugmessagehandler(QtMsgType Type,
const QMessageLogContext& Context,
const QString &Message)
{
#ifdef WIN32
OutputDebugString(reinterpret_cast<const wchar_t *>(m.utf16()));
#endif
}
и зарегистрируйте его в своем конструкторе-объекте QApplication (или вскоре после этого) следующим образом
this->qInstallMessageHandler(debugmessagehandler);
Теперь все, что вам нужно сделать, это убедиться, что ваш отладчик действительно подключен. Вы могли бы позвонить
isDebuggerPresent(void);
из winbase.h внутри вашего кода для проверки или используйте внешнюю программу для проверки.