Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Qt qDebug not working with QConsoleApplication or QApplication

I currently have a terribly annoying problem while developing programs using Qt and Qt Creator. Whenever I try using qDebug() with a QCoreApplication or QApplication instantiated before using qDebug(), there isn't any output, whether I run the program in Qt Creator or from a normal shell(I'm using Fedora Linux btw). For example, even the following simple code fails:

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

Does anybody know what to do about this problem? Thanks in advance, Marius

like image 990
marius_linux Avatar asked Jun 01 '15 21:06

marius_linux


3 Answers

For better formatting, I add this new solution, marius still found it himself in this bugzilla.

Edit ~/.config/QtProject/qtlogging.ini and add:

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

The last line is to disable spammy debug logging for moved mouse messages.

like image 169
Mathias Avatar answered Oct 14 '22 18:10

Mathias


Docs around this can be found here: http://doc.qt.io/qt-5/qloggingcategory.html#details

It can be configured in many ways. Few useful examples:

by env variable(cmd):

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

by env variable(export):

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

or in code:

#include <QCoreApplication>
#include <QLoggingCategory>
int main(int argc, char *argv[])
{
  QCoreApplication a(argc, argv);
  QLoggingCategory::setFilterRules("*.debug=true");
  qDebug() << "Debugging;
  a.exit();
}
like image 5
5n00py Avatar answered Oct 14 '22 17:10

5n00py


OK, I found out what the problem was, it was indeed Fedora, but it's the new standard configuration. See here: https://forum.qt.io/topic/54820/

like image 1
marius_linux Avatar answered Oct 14 '22 18:10

marius_linux