打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Window下Qt中用qDebug()输出调试信息到Console控制台的设置方法
userphoto

2015.04.29

关注
学习qt调试

1. 使用警告和调试信息

qDubug():输出调试信息 
    Example: 
        qDebug( "my window handle = %x", myWidget->id() );

qWarning():输出警告信息 
    Example: 
        void f( int c )
        {
            if ( c > 200 )
                qWarning( "f: bad argument, c == %d", c );
        }

qFatal():输出致命错误信息 ,程序自动被迫中止
    Example: 
        int divide( int a, int b )
        {
            if ( b == 0 )                               // program error
                qFatal( "divide: cannot divide by zero" );
            return a/b;
        }


使用例子:

        #include <qapplication.h>
       #include <iostream.h>

        void myMessageOutput( int input );

        int main( int argc, char **argv )
        {
            QApplication a( argc, argv );
            int temp;
        
        while(1)
        {
            cout << "Please input 1 2 or 3 here and else for quit:"; 
            cin>>temp;
            myMessageOutput( temp )    ;
        }         
            return a.exec();
        }

       void myMessageOutput( int input )
        {
            switch ( input ) {
                case 1: 
                qDebug("The number you input is : %d ",input);
                    break;
                case 2:                   
                qWarning("The number you input is : %d ",input);
                    break;
                case 3:
                qWarning("The number you input is : %d ",input);    
                    break;                  
            default : 
                //qWarning("The number you input is : %d ,which is invalid here.",input);
                qFatal( "It will be quit." );
                //cout<<"It will be quit."<<endl ;
                //abort(); 
            }
        }



2. 使用调试宏
头文件qglobal.h 中定义了一些用于调试的宏:
Q_ASSERT(BOOL b) :b为假时程序将输出警告信息并指出代码所在的文件和行数
Q_CHECK_PTR(point):point为一个指针变量,如果point为空时,将输出警告信息并指出代码所在的文件和行数

ASSERT(BOOL b)和CHECK_PTR(point)是标准C++中的语法。

        #include <qapplication.h>
       #include <iostream.h>
       //#include <qglobal.h>    

       void check_assert(int size);


        int main( int argc, char **argv )
        {
            QApplication a( argc, argv );
            int temp;
        
        while(1)
        {
            cout << "Please input a number here which should be more than 5 ,or less 0 quit:"; 
            cin>>temp;
            check_assert(temp);
        }         
            return a.exec();
        }


       void check_assert(int size)
       {
            ASSERT( ( size > 0) );
            char* p= NULL;
            if ( size > 5 )
                p = new char(size);
            if ( size < 0 )
            {
                cout<<"It will be quit."<<endl ;    
                abort();
            }    
            else
                CHECK_PTR(p);
       }   
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
QT学习笔记-7.QString和QByteArray - Cpper - C++博客
主函数参数argc和argv测试
【转】用Qt生成dll类库及调用方法 - 柳北风儿~~~~~~~欲宇仙炅 - ITeye技术网站
C语言 函数指针和指针函数用法
基于24位bmp图片数据区隐写的实现
C++ Primer第六章函数习题
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服