Hi,
gibt es die Möglichkeit bei qDebug() den Zeilenwechsel, der automatisch gesetzt wird, wegzulassen?
Noch eine Frage:
Ist es möglich die Ausgabe von qDebug in einem Fenster unterzubringen, in einem Textfeld oder irgendwas? Standardmäßig wird die Sache ja in der Konsole ausgegeben.
Gruss, Karl
[gelöst] qDebug ohne Zeilenwechsel, qDebug Ausgabe umleiten
-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten:
-
FlorianBecker
- Beiträge: 1213
- Registriert: 2. Dezember 2004 10:54
- Kontaktdaten:
-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten:
Nachdem in dem endlich erschienenen Buch "Qt4 Einführung in die Applikationsentwicklung" gezeigt wird, wie man qInstallMsgHandler verwendet um die Debugging-Info in ein simples Textfenster umzuleiten hab ich das noch ein bischen verfeinert:
wenn man beiliegenden Dateien verwendet, laufen alle Meldungen in einem seperaten Fenster, in dem kann man:
- drucken
- speichern
- mittels Regexp alle Zeilen markieren lassen, die einem Ausdruck entsprechen.
und im Gegensatz zu dem Beispiel im Buch schliesst sich das Fenster auch brav, wenn man das hauptfenster schliesst.
Voraussetzung ist, dass die main.cpp z.B. so ausschaut:
(vorausgesetzt die Klasse für das Hauptfenster heisst MainWindow)
und vorausgesetzt, man fängt in MainWindow das CloseEvent ab und sendet ein Signal void closing().
Leider hab ich kein Signal gefunden, dass ein QMainWindow beim schliessen automatisch aussendet, das man verwenden könnte um das debugWindow zu schliessen. Gibts da was?
wenn man beiliegenden Dateien verwendet, laufen alle Meldungen in einem seperaten Fenster, in dem kann man:
- speichern
- mittels Regexp alle Zeilen markieren lassen, die einem Ausdruck entsprechen.
und im Gegensatz zu dem Beispiel im Buch schliesst sich das Fenster auch brav, wenn man das hauptfenster schliesst.
Voraussetzung ist, dass die main.cpp z.B. so ausschaut:
Code: Alles auswählen
#include "MainWindow.h"
#include "debughandler.h"
//
int main( int argc, char ** argv ) {
QApplication app( argc, argv );
DebugWindow* deb = DebugWindow::self();
qInstallMsgHandler(debugWinMsgHandler);
QLocale loc;
QString locale = QLocale::languageToString(loc.language());
qDebug() << "decided to use language " << locale;
QTranslator translator;
translator.load(QString("translations/werter_") + locale.toLower());
app.installTranslator(&translator);
MainWindow mw;
mw.show();
//
app.connect( &app, SIGNAL( lastWindowClosed() ), &app, SLOT( quit() ) );
app.connect( &mw, SIGNAL(closing()), deb, SLOT(close()));
return app.exec();
}
und vorausgesetzt, man fängt in MainWindow das CloseEvent ab und sendet ein Signal void closing().
Leider hab ich kein Signal gefunden, dass ein QMainWindow beim schliessen automatisch aussendet, das man verwenden könnte um das debugWindow zu schliessen. Gibts da was?
- Dateianhänge
-
- debugWindow.zip
- (2.54 KiB) 171-mal heruntergeladen