Не видит вывод из 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 внутри вашего кода для проверки или используйте внешнюю программу для проверки.

Другие вопросы по тегам