Уголок СУ-11 на просторах вселенной

суббота, 10 ноября 2018 г.

решение проблемы вывода qDebug в Application output QTCreator

Проблема следующая:
Centos7, QTCreator 4.7.
Не работает вывод QDebug в Application output QTCreator
Решение найдено тут:
https://bugs.archlinux.org/task/40583
+ сам нарыл

1)
Запускать QTCreator нужно с перменной вот так:
QT_LOGGING_TO_CONSOLE=1 qtcreator
после этого у нас заработает qInfo()

2)
Для использования qWarning()
в QTCreator заходим в "Инструменты" -> "Параметры" -> "Сбора и запуск" -> "Основное", включаем "Объединять stderror и stdout"
или
добавить QT_ASSUME_STDERR_HAS_CONSOLE=1 к запуску QTCreator
пример: QT_ASSUME_STDERR_HAS_CONSOLE=1 QT_LOGGING_TO_CONSOLE=1 qtcreator

3)
Далее для того, чтобы оживить qDebug
в наш main.cpp
добавляем (в списке я убрал не нужные дял меня сообщения)
QLoggingCategory::setFilterRules("*.debug=true\n"
                                    "qt.qpa.input*.debug=false\n"
                                    "qt.qpa.gl*.debug=false\n"
                                    "qt.widgets.gestures*.debug=false\n"
                                    "qt.qpa.screen*.debug=false\n"
                                    "qt.xcb.glintegration*.debug=false\n"
                                    "qt.svg*.debug=false\n"
                                    "logfunc.printf.debug=true\n"
                                    "logfunc.value.debug=true");
На сколько я понимаю LoggingCategory также можно задавать через переменные. Но мне это не нужно.