QDebug在开发过程中使用得较多,整理了一些较少用却很有用的知识。...禁用自动插入空格 QDebug &QDebug::nospace() 对比: qDebug() << "Hello" << "world!"...QDebug &QDebug::noquote() 对比: qDebug() << QString("Hello world!")...不需要引用QDebug头文件也可使用qDebug() 如果向函数传递格式字符串和参数列表,则其工作方式与C语言的printf()函数类似。格式应为Latin-1字符串。...qDebug(const char *message, ...) 如: qDebug("%s", "Hello world!")
❝简单的QDebug重载例子,以支持自定义类型(枚举)打印输出。...Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }; } QDebug...operator<<(QDebug debug, const Day &day) { switch (day) { case Monday: debug...break; default: break; } return debug; } Day day = Monday; qDebug
❝qDebug会将浮点型超过一百万的数打印为科学计数法,该如何解决它呢?...❞ double d = 1000000; qDebug() << d; 输出: 1e+06 由于qDebug底层使用QTextStream打印数据,而QTextStream可以设置输出的格式为科学计数法...qDebug不提供设置浮点型数据输出为定点记数法,只能通过其他方式解决。...先转为QString再打印 接口: static QString number(double, char f='g', int prec=6); 例子: double d = 1000000; qDebug...s.setRealNumberNotation(QTextStream::FixedNotation); /* 使用固定模式 */ s.setRealNumberPrecision(0); /* 保留0位小数 */ s << d; qDebug
❝经常使用QDebug进行打印字符串,其实我们还可以使用QDebug拼接字符串。...❞ QString s; QDebug(&s).nospace() << "PI:" << 3.14 << __FUNCTION__ << __LINE__; qDebug() << s; //output...: "PI:3.14main10" 不止是拼接字符串,还能拼接大部分的Qt对象,比如: QString s; QDebug(&s).nospace() << QSize(5, 5) << QPoint...(1, 1) << QColor(Qt::red); qDebug() << s; //output: "QSize(5, 5)QPoint(1,1)QColor(ARGB 1, 1, 0, 0)"
Qt君最近感觉qDebug相对于printf打印感觉有些慢,但又没有证据,于是闲着就写下qDebug,std::cout,printf的性能表现咯。注:测试数据仅供参考。...0x00 测试环境 环境 参数 CPU i5-8250U 内存 8G 操作系统 Windows@64位 Qt版本 Qt 5.12.1 编译器 MSVC2017@64位 0x01 数据呈现 通过使用qDebug...debug版本(次/秒) release版本(次/秒) qDebug 38317 60923 std::cout 382890 372696 printf 432606 386663 图表化显示 ?...0x02 数据分析 性能表现:printf > std::cout > qDebug; qDebug()相对于std::cout和printf差距过大(6~10倍); std::cout与printf...0x03 结论 qDebug比std::cout和printf慢,高频调用有可能影响系统时延; 性能均衡推荐选用std::cout; 追求性能选用printf。
一、环境介绍 操作系统介绍:win10 64位 QT版本: 5.12.6 二、功能介绍 初始化QDebug输出重定向到日志文件,重定向之后,程序里通过qDebug()<<"xxx"输出的数据都会保存到在日志文件中...ts << txt << endl; } int main(int argc, char *argv[]) { QApplication a(argc, argv); //初始化qdebug
一、环境介绍 操作系统: win10 64位 QT版本: 5.12.6 Visual Studio IDE 版本: 2017 二、设置子系统为控制台 三...
("a"); //任意个数字+两个非数字 QRegExp reg0("\\d*\\D{2}"); qDebug()<<reg0.exactMatch("123ab");...:\\s*)(cm|inchi)"); qDebug()<<regHight.indexIn("Mr.WM 170cm"); qDebug()<<regHight.cap(0);//完整...qDebug()<<regHight.cap(1);//第一部分 //断言?!...; str.replace(reg2,"米");//我爱吃米食,面包也行吧 qDebug()<<str; //Qt5引入了新的类 QRegularExpression...()<<match2.hasMatch();//完整匹配 qDebug()<<match2.hasPartialMatch();//部分匹配 qDebug()<<match2;
; // qDebug("Image height : %d\n", result.ImageHeight); // qDebug("Image description...); // qDebug("Image copyright : %s\n", result.Copyright.c_str()); // qDebug("Image date/...qDebug("Flash mode : %d\n", result.FlashMode); // qDebug("Metering mode : %d\n",...); // qDebug("Lens max focal length: %f mm\n", result.LensInfo.FocalLengthMax); // qDebug("Lens...()); // qDebug("Lens model : %s\n", result.LensInfo.Model.c_str()); // qDebug("Focal
一个简单的使用例子: HttpClient client; client.get("https://qthub.com") .onSuccess([](QString result) { qDebug...()<<"result:"<<result; }) .onFailed([](QString err) { qDebug()<<"error:"<<err; }) .exec()...()<<"result:"<<result.left(100); }) .onFailed([](QString error) { qDebug()<<"error:"<<error; })...()<<"result:"<<result.left(100); }) .onFailed([](QString error) { qDebug()<<"error:"<<error; })....onTimeout([](QNetworkReply *) { qDebug()<<"timeout"; }) // 超时处理 .timeout(1000) // 1s超时
❞ 不多说直接上代码: #include #define NONE "\033[0m" #define DARK "\033[30m" #define...() << "--------------------------"; qDebug() << DARK << "Dark"; qDebug() << RED << "Red"...; qDebug() << GREEN << "Green"; qDebug() << YELLOW << "Yellow"; qDebug() << BLUE << "Blue..."; qDebug() << PURPLE << "Purple"; qDebug() << CYAN << "Cyan"; qDebug() << WHITE << "White..."; qDebug() << NONE << "None: Reset Default Color"; qDebug() << "--------------------------
利用QDebug类将一个数据类型(QMap,QList等)转换为字符串。 ...由于我们使用qDebug打印数据,好像什么数据都能打印到屏幕,由此我们可以利用QDebug类输出重定向到QString中,从而实现数据的字符串序列化。...原型 QDebug::QDebug(QString *string) 两种实现方法 使用QVariant类型作为参数实现。...QString toString(QVariant var) { QString string; QDebug(&string) << var; return string;...template QString toString(T t) { QString string; QDebug(&string) << t; return
添加删除和两个迭代器 QListIterator和QMutableListIterator #include #include #include<QDebug...()<<"删除3"; listInt.removeAt(3); //查询 foreach (int item, listInt) { qDebug()<<item...()) { qDebug()<<iterator.next(); if(iterator.hasNext()) qDebug()<<"the Next...()<<"普通访问foreach"; foreach (int item, link) { qDebug()<< item; } qDebug()<<"迭代器QMutableLinkedListIterator...=listStrs.end()) { qDebug()<<*iterFin; } else { qDebug()<<"notFound!"
(Linux系统就是根目录)的磁盘情况 QStorageInfo ROM = QStorageInfo::root(); ROM.refresh(); //获得最新磁盘信息 qDebug...() <<"文件系统路径:"<<ROM.rootPath(); if(ROM.isReadOnly())qDebug() << "只读文件系统:" << ROM.isReadOnly();...qDebug() << "文件系统类型:" << ROM.fileSystemType(); qDebug() << "总大小:" << ROM.bytesTotal()/1024/1024/1024...<< "GB"; qDebug() << "可用空间:" << ROM.bytesAvailable()/1024/1024/1024 << "GB"; //获取指定目录的磁盘情况,...qDebug() << "文件系统类型:" << SD.fileSystemType(); qDebug() << "总大小:" << SD.bytesTotal()/1024/1024/1024
QString timer=QTime(0, 0, 0).addSecs(int(time_sec)).toString(QString::fromLatin1("HH:mm:ss")); qDebug...、秒转为秒单位时间 QString time_str="01:20:30"; //时分秒 QTime time=QTime::fromString(time_str); qDebug...()<<"时:"<<time.hour(); qDebug()<<"分:"<<time.minute(); qDebug()<<"秒:"<<time.second(); qDebug...()<<"时:"<<time.hour(); qDebug()<<"分:"<<time.minute(); qDebug()<<"秒:"<<time.second(); qDebug...()<<"毫秒:"<<time.msec(); qDebug()<<"总毫秒数:"<<time.hour()*60*60*1000+time.minute()*60*1000+time.second
);//大小写敏感 //查询是否以xx结尾 qDebug()<<s5.endsWith("威猛先生");//同样可以表明大小写是否敏感 //是否包含 qDebug()<<s5...= numList.constEnd();it_numR++) { qDebug()<<*it_numR; } qDebug()<<"---"; --...QVariant vNum(100); qDebug()<<vNum.toInt(); QVariant vPi(3.1415f); qDebug()<< vPi.toFloat(); QVariant...(Qt::red); QVariant VC = c; qDebug()<<VC.type(); qDebug()(); QVariant vss = vStr;...qDebug()<<vss.canConvert(QVariant::Int);//返回数据类型转换能力,QVariant的转换能力 qDebug()<<vss.convert(QVariant::Int
sql_query.exec()) { qDebug() << sql_query.lastError(); qDebug("插入数据[%d] - 失败!!!!!...sql_query.exec()) { qDebug() << sql_query.lastError(); qDebug("更新数据[%d] Time - 失败...sql_query.exec()) { qDebug() << sql_query.lastError(); qDebug("更新数据[%d] buf - 失败!...sql_query.exec()) { qDebug() << sql_query.lastError(); qDebug("更新数据[%d] time buf...; qDebug() << sql_query.lastError(); return false; } qDebug("删除-[Table] - OK
() << "startsWith(\"@\")"; } if (QString("@192.168.0.1#").endsWith("#")) { qDebug() << "endsWith...(\"#\")"; } //判断QString是否空 qDebug() << "QString().isEmpty()" << QString().isEmpty(); //true qDebug...() << "QString("").isEmpty()" << QString("").isEmpty(); //true qDebug() << "QString(" ").isEmpty()"...<< QString(" ").isEmpty(); //false qDebug() << "QString(\"hi\").isEmpty()" << QString("hi").isEmpty(...); //false qDebug() << "QString().isNull()" << QString().isNull(); //true qDebug() << "QString(""
< "星期四"; weekList<< "星期五"; weekList<< "星期六"; weekList.append("星期天"); //直接输出链表中所有元素 qDebug...=weekList.end(); it++){ qDebug() << *it; } //使用foreach() 访问 foreach (QString str...); while(itr.hasNext()){ qDebug()<< itr.next(); } //查询链表元素 qDebug()<< "链表中是否有星期八...; qDebug()<< weekList; //删除指定元素 weekList.removeOne("星期一"); qDebug()<< weekList; //删除指定位置的元素...weekList.removeAt(2); qDebug()<< weekList; //删除所有元素 weekList.clear(); qDebug()<< weekList
“ 具体测试: /*** 测试QStringList的IndexOf是否是全词匹配 ***/ qDebug() <<"===============================...QStringList sList; sList << "aaa" <<"aaaaaa" << "bb"<< "bbbbbb"<<"aaabb"<<"cc" <<"cc"; qDebug...() << (0 == sList.indexOf("aaa")); qDebug() << (1 == sList.indexOf("aaaaaa")); qDebug() <<...(-1 == sList.indexOf("aaaa")); //整词匹配 qDebug() << (2 == sList.indexOf("bb")); qDebug() << (...-1 == sList.indexOf("aab")); qDebug() << (-1 == sList.indexOf("dd")); //找不到返回-1 qDebug() <
领取专属 10元无门槛券
手把手带您无忧上云