Qt的qDebug使用小結(jié)
使用 " qDebug() << "一定要添加頭文件 #include
然而
int num = 20;
char str[20]="hello world";
qDebug("如果只寫在括號里,是不需要QDebug頭文件的 %d %s", num, str);消除qDebug()打印
qDebug的打印信息,主要是為了方便調(diào)試程序時盡快找到bug,所以當(dāng)我們在發(fā)布版本時,需要去掉debug打印,一方面可以加快我們程序的執(zhí)行速度,另一方面可以減小我們程序的體積。
在我做的項(xiàng)目中有很多人是采用加注釋的方法來去掉打印的,雖然這個方法可行,但不是很有效的,如果哪天程序出了bug還需要再把打印信息去掉注釋,這是很麻煩的。當(dāng)然,將日志分級也是個很不錯的想法。
為了解決這個問題,你只需要在你的pro文件里加上一行預(yù)定義宏即可。
DEFINES += QT_NO_DEBUG_OUTPUT
在你的程序添加上這個宏,重新編譯運(yùn)行程序,看看你的打印信息是不是都不見了呢,哈哈,這是不是很方便啊,Qt就是這么的懂你。
為自定義類添加qDebug()打印
如果我們想要使用qDebug打印自定義類中的信息時就可以像以下這樣做:
#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;
}首先,自定義了一個類Student,編寫了構(gòu)造函數(shù)和獲取姓名的獲取器。
其次,定義了"<<"操作符,打印名字。
最后,在main函數(shù)中創(chuàng)建Student的實(shí)例,并用qDebug()打印該實(shí)例。
Qt QDebug 打印自定義結(jié)構(gòu)體
1.簡述
你還在到處這樣打印結(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)體里聲明一個友元函數(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語言隨機(jī)數(shù)生成教程(rand和srand用法)
這篇文章主要介紹了C語言隨機(jī)數(shù)生成教程(rand和srand用法),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
詳解C++中的ANSI與Unicode和UTF8三種字符編碼基本原理與相互轉(zhuǎn)換
在C++編程中,我們有時需要去處理字符串編碼的相關(guān)問題,常見的字符編碼有ANSI窄字節(jié)編碼、Unicode寬字節(jié)編碼及UTF8可變長編碼。很多人在處理字符串編碼問題時都會有疑惑,即便是有多年工作經(jīng)驗(yàn)的朋友也可能搞不清楚。所以有必要講一下這三種字符編碼以及如何去使用它們2021-11-11
C語言中使用fopen()打開和操作文件的詳細(xì)方法指南
fopen是C語言庫函數(shù),open是系統(tǒng)調(diào)用,mmap是將大文件映射到內(nèi)存中使用,這篇文章主要給大家介紹了關(guān)于C語言中使用fopen()打開和操作文件的詳細(xì)方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-09-09
詳解VisualS tudio Code開發(fā)Arm嵌入式Linux應(yīng)用
本文介紹如何在 Visual Studio Code 中使用 Yocto Project 生成的 Linux SDK,并針對 Arm 處理器進(jìn)行 C/C++ 應(yīng)用交叉編譯和調(diào)試,感興趣的朋友跟隨小編一起看看吧2021-04-04

