Qt的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)文章
C語言超詳細(xì)講解循環(huán)與分支語句基礎(chǔ)
各位小伙伴們,今天給大家?guī)淼氖茄h(huán)與分支語句,本篇將會(huì)向大家介紹這些語句的格式和使用的基本方法,感興趣的朋友來看看吧2022-04-04c++中虛函數(shù)和純虛函數(shù)的作用與區(qū)別
這篇文章主要介紹了c++中虛函數(shù)和純虛函數(shù)的作用與區(qū)別,需要的朋友可以參考下2014-07-07