Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt,Linux] qDebug


Автор: dix75 5.2.2010, 12:55
Добрый день!
Как можно запретить вывод только некоторых отладочных сообщений. 

Автор: SABROG 5.2.2010, 13:23
Код

#include <qapplication.h>
 #include <stdio.h>
 #include <stdlib.h>

 void myMessageOutput(QtMsgType type, const char *msg)
 {
     switch (type) {
     case QtDebugMsg:
         fprintf(stderr, "Debug: %s\n", msg);
         break;
     case QtWarningMsg:
         fprintf(stderr, "Warning: %s\n", msg);
         break;
     case QtCriticalMsg:
         fprintf(stderr, "Critical: %s\n", msg);
         break;
     case QtFatalMsg:
         fprintf(stderr, "Fatal: %s\n", msg);
         abort();
     }
 }

 int main(int argc, char **argv)
 {
     qInstallMsgHandler(myMessageOutput);
     QApplication app(argc, argv);
     ...
     return app.exec();
 }

Автор: andrew_121 5.2.2010, 13:24
унаследоваться от qDebug, перегрузить оператор<<, и в нем реализовать фильтр.

Автор: SABROG 5.2.2010, 14:03
Цитата(andrew_121 @ 5.2.2010,  13:24)
унаследоваться от qDebug, перегрузить оператор<<, и в нем реализовать фильтр.

Только перегружать придется все типы, а их там не мало.

http://qt.gitorious.org/+qt-kinetic-developers/qt/kinetic/blobs/kinetic-declarativeui/src/declarative/qml/qmlinfo.h
http://qt.gitorious.org/+qt-kinetic-developers/qt/kinetic/blobs/kinetic-declarativeui/src/declarative/qml/qmlinfo.cpp

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)