这篇博客简单的讲解一下Qt “qDebug()”的简单用法,它可以像C语言那样格式化输出,也可以像C++那样“>>”输出。


格式化输出

  1. 输出十进制、八进制和十六进制:

    qint32 num = 255;
    qDebug("十进制:%d", num);
    qDebug("八进制:%o", num);
    qDebug("十六进制:%x", num);
    

    在这里插入图片描述
    注意:qint32 等同于 int类型。

  2. 输出浮点类型

    qreal PI = 3.14;
    qDebug("PI:%.2f", PI);
    

    在这里插入图片描述
    注意:qreal 等同于 double类型。

  3. 打印‘%’

    qint32 rete = 95;
    qDebug("酒精浓度%d%%", rete);   // %%打印“%”
    

    在这里插入图片描述

  4. 输出字符串

    QString boy("这个男孩很特别");
    qDebug("%s", boy);					/*会出现乱码*/
    qDebug("%s", qPrintable(boy));		/*会出现乱码*/
    qDebug("%s", qUtf8Printable(boy));  // C语言方式输出(正确输出方式)
    

    在这里插入图片描述
    建议使用第三条式子格式化输出字符串,因为他会自动转换为utf8格式进行输出,才不会输出乱码。

“>>”输出

注意:使用此方式输出任意的变量,都需要加上头文件:#include <QDebug>

  1. 去除与保留“双引号”输出
qDebug() << boy;
qDebug().noquote() << boy;  // 去除字符串的双引号打印
qDebug().quote() << boy;    // 保留字符串的双引号打印(与qDebug() << boy;用法一致)

在这里插入图片描述

  1. 有空格打印与无空格打印输出
    有些符号他会自动补充空格,例如:[ ] 、{ }等

    qDebug() << "[" << "你好" << "]"; 			  // 有空格打印
    qDebug().nospace() << "[" << "你好" << "]";   // 无空格打印
    qDebug().space() << "[" << "你好" << "]" << ".";   // 有空格打印(字符串两端都有空格)
    

    在这里插入图片描述

  2. 整型、浮点型、字符打印输出

    qint32 _int = 12345;
    qreal _double = 1.2345;
    char _char = 'c';
    qDebug() << "qint32(int):" << _int << endl
    		 << "qreal(double):" << _double << endl
    		 << "uchar(char):" << _char << endl;
    

    在这里插入图片描述

    char类型也可以写成qint8,但是他输出的是对应ASCII码值中的整数值,笔者也很纳闷,没有深入了解,有兴趣的朋友可以自行了解一下。


总结:

Qt 中的qDebug()的内容也就基本上是这些了,其实它的用法和C/C++的用法基本类型,懂得C/C++语言的朋友,也一定会使用qDebug()的。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐