Wie funktioniert Qt5 redirect qDebug () - Anweisungen, um die Qt Creator 2.6 Konsole

Nach der Suche rund um für einen Grund, dass die qDebug () - Anweisungen funktionieren mit der Qt-standard-message-handler, aber nicht, wenn ich auf meiner eigenen, ich bin attraktiv hier, um zu sehen, ob jemand irgendwelche Erfahrungen mit dem problem.

Dinge, die ich kennen /probiert haben,, die nichts zu tun...

1) CONFIG += console

2) DEFINES -= QT_NO_WARNING_OUTPUT QT_NO_DEBUG_OUTPUT

3) ::fprintf(stderr, "ERROR\n"); ::fflush(stderr);

4) ::fprintf(stdout, "OUTPUT\n"); ::fflush(stdout);

5) std::cerr << "CERROR" << std::endl; std::cerr.flush();

Aber es funktioniert einwandfrei, wenn Sie die eingebauten handler (also er druckt die Nachricht an den QtCreator Konsole)

int main(int argc, char *argv[]) {
    //Use my handler
    qInstallMessageHandler(MyCustomLogger);
    qDebug() << "Not Printed";

    //Use standard handler
    qInstallMessageHandler(0);
    qDebug() << "Correctly Printed";

    //Use my handler again
    qInstallMessageHandler(MyCustomLogger);
    qDebug() << "Not Printed Again...";
}

Den letzten test wurde die Zuweisung selbst eine Konsole mit WinAPI-Befehle, die diese Ergebnisse in das korrekte Verhalten, alle Ausgaben auf stderr und stdout sind sichtbar auf der Konsole, die ich erstellt. Dies ist jedoch nicht das Verhalten, das ich will, ich will in der Lage sein, diese Ausgabe in QtCreator.

Irgendwelche Gedanken auf, wie die standard-message-handler-prints auf den debugger?
Ich habe nicht geschafft, es zu finden, in die Qt-Quellen noch.

Auf windows, qDebug() benutzt die debug-Kanal, nicht stderr.
Ich muss zugeben, ich habe nie gehört, dass die debug-Kanal vor, ab zu google.

InformationsquelleAutor g.p.daniels | 2013-02-01

Schreibe einen Kommentar