欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Qt的qDebug使用小結(jié)

 更新時(shí)間:2023年06月06日 10:09:29   作者:wowocpp  
使用qDebug()函數(shù)它可以把調(diào)試信息直接輸出到控制臺(tái)上,本文就來介紹一下qDebug的具體使用,具有一定的參考價(jià)值,感興趣的可以了解一下

使用 " qDebug() << "一定要添加頭文件 #include

然而

 int num = 20;
 char str[20]="hello world";
 qDebug("如果只寫在括號(hào)里,是不需要QDebug頭文件的 %d %s", num, str);

消除qDebug()打印

qDebug的打印信息,主要是為了方便調(diào)試程序時(shí)盡快找到bug,所以當(dāng)我們?cè)诎l(fā)布版本時(shí),需要去掉debug打印,一方面可以加快我們程序的執(zhí)行速度,另一方面可以減小我們程序的體積。

在我做的項(xiàng)目中有很多人是采用加注釋的方法來去掉打印的,雖然這個(gè)方法可行,但不是很有效的,如果哪天程序出了bug還需要再把打印信息去掉注釋,這是很麻煩的。當(dāng)然,將日志分級(jí)也是個(gè)很不錯(cuò)的想法。

為了解決這個(gè)問題,你只需要在你的pro文件里加上一行預(yù)定義宏即可。

DEFINES += QT_NO_DEBUG_OUTPUT

在你的程序添加上這個(gè)宏,重新編譯運(yùn)行程序,看看你的打印信息是不是都不見了呢,哈哈,這是不是很方便啊,Qt就是這么的懂你。

為自定義類添加qDebug()打印

如果我們想要使用qDebug打印自定義類中的信息時(shí)就可以像以下這樣做:

#include <QDebug>
class Student
{
public:
    Student(const QString& nm){name = nm;}
    QString getName() const{return name;}
private:
    QString name;
};
QDebug operator<<(QDebug debug, const Student &c)
{
    debug << c.getName();
    return debug;
}
int main(int argc, char *argv[])
{
    Student student("John");
    qDebug() << student;
}

首先,自定義了一個(gè)類Student,編寫了構(gòu)造函數(shù)和獲取姓名的獲取器。

其次,定義了"<<"操作符,打印名字。

最后,在main函數(shù)中創(chuàng)建Student的實(shí)例,并用qDebug()打印該實(shí)例。

Qt QDebug 打印自定義結(jié)構(gòu)體

1.簡(jiǎn)述

你還在到處這樣打印結(jié)構(gòu)體么?

qDebug()<<"Mc info:"<<info.m_id<<info.r_id<<info.display_type<<info.topic<<info.name<<info.sname;

我剛才還在這樣打印結(jié)構(gòu)體,不過我實(shí)在是受夠了,一番折騰之后,我可以這樣打印了

qDebug()<<"Mc info:"<<info;

2.代碼

我們僅需要在結(jié)構(gòu)體里聲明一個(gè)友元函數(shù),重載QDebug的<<即可。

#include <QDebug>
class Info
{
public:
    QString m_id;
    QString r_id;
    QString display_type;
    QString topic;
    QString name;
    QString sname;
    friend QDebug& operator<<(QDebug out, const Info& info)
    {
        out <<info.m_id<<info.r_id<<info.display_type<<info.topic<<info.name<<info.sname;
        return out;
    }
};

到此這篇關(guān)于Qt的qDebug使用小結(jié)的文章就介紹到這了,更多相關(guān)Qt qDebug內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • VC小技巧匯總之控件技巧

    VC小技巧匯總之控件技巧

    這篇文章主要介紹了VC小技巧匯總之控件技巧,對(duì)于VC的開發(fā)很有借鑒價(jià)值,需要的朋友可以參考下
    2014-07-07
  • C++開源庫nlohmann/json的介紹和使用詳解

    C++開源庫nlohmann/json的介紹和使用詳解

    nlohmann/json?是一個(gè)C++實(shí)現(xiàn)的JSON解析器,使用非常方便直觀,這篇文章主要為大家詳細(xì)介紹了nlohmann/json的簡(jiǎn)介和使用,需要的可以參考下
    2023-12-12
  • C語言超詳細(xì)講解循環(huán)與分支語句基礎(chǔ)

    C語言超詳細(xì)講解循環(huán)與分支語句基礎(chǔ)

    各位小伙伴們,今天給大家?guī)淼氖茄h(huán)與分支語句,本篇將會(huì)向大家介紹這些語句的格式和使用的基本方法,感興趣的朋友來看看吧
    2022-04-04
  • C++獲得其他程序窗體控件中信息的方法

    C++獲得其他程序窗體控件中信息的方法

    這篇文章主要介紹了C++獲得其他程序窗體控件中信息的方法,涉及windows控件句柄的獲取技巧,需要的朋友可以參考下
    2015-05-05
  • C++中異常處理的基本思想及throw語句拋出異常的使用

    C++中異常處理的基本思想及throw語句拋出異常的使用

    這篇文章主要介紹了C++中異常處理的基本思想及throw類拋出異常的使用,也深入談到了異常被拋出后的棧解旋unwinding過程,需要的朋友可以參考下
    2016-03-03
  • C++重載的奧義之運(yùn)算符重載詳解

    C++重載的奧義之運(yùn)算符重載詳解

    函數(shù)的重載是指利用相同的函數(shù)名設(shè)計(jì)一系列功能相近,但是功能細(xì)節(jié)不一樣的函數(shù)接口;因此運(yùn)算符重載也是指對(duì)于同一個(gè)運(yùn)算符來說,它可以用于實(shí)現(xiàn)不同的功能。下面就一起來理解下運(yùn)算符重載的應(yīng)用吧
    2023-04-04
  • 使用Qt實(shí)現(xiàn)文本文件的讀寫操作

    使用Qt實(shí)現(xiàn)文本文件的讀寫操作

    在現(xiàn)代應(yīng)用程序開發(fā)中,文件操作是一個(gè)不可或缺的任務(wù),無論是讀取配置文件、處理用戶輸入,還是保存日志信息,文件的讀取和寫入操作都非常重要,本文我們將展示如何通過一個(gè)簡(jiǎn)單的圖形用戶界面(GUI),利用QFile、QTextStream和QFileDialog類來高效地進(jìn)行文件操作
    2024-06-06
  • C與C++中結(jié)構(gòu)體的區(qū)別

    C與C++中結(jié)構(gòu)體的區(qū)別

    C中的結(jié)構(gòu)體只涉及到數(shù)據(jù)結(jié)構(gòu),而不涉及到算法,也就是說在C中數(shù)據(jù)結(jié)構(gòu)和算法是分離的,而到C++中一類或者一個(gè)結(jié)構(gòu)體可以包含函數(shù)(這個(gè)函數(shù)在C++我們通常中稱為成員函數(shù)),C++中的結(jié)構(gòu)體和類體現(xiàn)了數(shù)據(jù)結(jié)構(gòu)和算法的結(jié)合
    2013-10-10
  • c++中虛函數(shù)和純虛函數(shù)的作用與區(qū)別

    c++中虛函數(shù)和純虛函數(shù)的作用與區(qū)別

    這篇文章主要介紹了c++中虛函數(shù)和純虛函數(shù)的作用與區(qū)別,需要的朋友可以參考下
    2014-07-07
  • c++中的字節(jié)序與符號(hào)位的問題

    c++中的字節(jié)序與符號(hào)位的問題

    這篇文章主要介紹了c++中的字節(jié)序與符號(hào)位的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07

最新評(píng)論