Qt qDebug不使用QConsoleApplication或QApplication

时间:2015-06-01 21:25:45

标签: c++ qt qdebug qapplication qcoreapplication

在使用Qt和Qt Creator开发程序时,我目前遇到了非常烦人的问题。每当我在使用qDebug()之前尝试使用QCoreApplicationQApplicationqDebug()实例化时,无论是在Qt Creator中运行程序还是从正常运行,都没有任何输出shell(我正在使用Fedora Linux btw)。例如,即使是以下简单代码也会失败:

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    qDebug() << "TestOutput!" << endl;
}

有人知道如何解决这个问题吗? 提前致谢, 的Marius

4 个答案:

答案 0 :(得分:9)

为了更好的格式化,我添加了这个新的解决方案,marius仍然在this bugzilla中找到了它。

修改~/.config/QtProject/qtlogging.ini并添加:

[Rules]
*.debug=true
qt.qpa.input*.debug=false

最后一行是禁用moved mouse消息的垃圾邮件调试日志记录。

答案 1 :(得分:5)

可以在此处找到相关文档:http://doc.qt.io/qt-5/qloggingcategory.html#details

可以通过多种方式进行配置。几个有用的例子:

by env variable(cmd):

$ export QT_LOGGING_RULES="*.debug=true" ./app
由env变量(导出):

$ QT_LOGGING_RULES="*.debug=true"
$ ./app

或代码:

#include <QCoreApplication>
#include <QLoggingCategory>
int main(int argc, char *argv[])
{
  QCoreApplication a(argc, argv);
  QLoggingCategory::setFilterRules("*.debug=true");
  qDebug() << "Debugging;
  a.exit();
}

答案 2 :(得分:1)

好的,我发现问题是什么,它确实是Fedora,但它是新的标准配置。看这里: https://forum.qt.io/topic/54820/

答案 3 :(得分:0)

这对我有帮助(在用户bashrc文件中):

export QT_LOGGING_DEBUG=1