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
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。
❝经常使用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)"
一、环境介绍 操作系统介绍:win10 64位 QT版本: 5.12.6 二、功能介绍 初始化QDebug输出重定向到日志文件,重定向之后,程序里通过qDebug()<<"xxx"输出的数据都会保存到在日志文件中...ts << txt << endl; } int main(int argc, char *argv[]) { QApplication a(argc, argv); //初始化qdebug
#include #include void printHello() { #ifdef Q_OS_WIN qDebug("Hello...; if(QSysInfo::windowsVersion() == QSysInfo::WV_10_0) { qDebug() << "Welcome to Windows...; } #elif defined(Q_OS_LINUX) qDebug("Hello Qt World on Linux!")...; #elif defined(Q_MV_OSX) qDebug("Hello Qt World on MacOS!")...; #else qDebug() << "We don't support this platform yet!"
二、核心代码 void MainWindow::GetDiskInfo() { //获取当前系统盘(Linux系统就是根目录)的磁盘情况 QStorageInfo ROM = QStorageInfo...())qDebug() << "只读文件系统:" << ROM.isReadOnly(); qDebug() << "文件系统类型:" << ROM.fileSystemType();...qDebug() << "总大小:" << ROM.bytesTotal()/1024/1024/1024 << "GB"; qDebug() << "可用空间:" << ROM.bytesAvailable.../1024/1024/1024 << "GB"; //获取指定目录的磁盘情况,直接设置路径即可 QStorageInfo SD; SD.setPath("/mnt/hgfs/linux-share-dir...)qDebug() << "只读文件系统:" << SD.isReadOnly(); qDebug() << "文件系统类型:" << SD.fileSystemType(); qDebug
一、前言 做嵌入式linux上的开发很多年了,扳手指头算算,也起码9年了,陆陆续续做过很过诸如需要读取外接的USB摄像头或者CMOS摄像机的程序,实时采集视频,将图像传到前端,或者对图像进行人脸分析处理...比如就说用v4l2加载摄像头这个,需要指定设备文件来读取,而现场不可能让用户来给你指定,频繁的拔插也会导致设备文件名的改动,所以必须找到一个机制自动寻找你想要的摄像机的设备文件名称,比如开个定时器去调用linux...linux方案处理流程: 调用封装的函数findCamera实时查找摄像头设备文件名。 调用::open函数打开设备文件。 调用封装的函数initCamera初始化摄像头参数(图片格式、分辨率等)。...二、功能特点 同时支持windows、linux、嵌入式linux上的USB摄像头实时采集。 支持多路USB摄像头多线程实时采集。 在嵌入式linux设备上,自动查找USB设备文件并加载。...在嵌入式linux设备上支持人脸识别接口,实时绘制人脸框。 具有打开、暂停、继续、关闭、截图等常规功能。 可设置两路OSD标签,分别设置文本、颜色、字号、位置等。 可作为视频监控系统使用。
一、环境介绍 操作系统: win10 64位 QT版本: 5.12.6 Visual Studio IDE 版本: 2017 二、设置子系统为控制台 📷 📷 ...
目前支持如下三个平台: 系统 CPU 编译器 说明 windows x86_84 msvc 64位系统 linux x86_64 gcc 64位系统 linux arm64 gcc 64位系统 后续考虑增加...上面步骤仅拷贝所需的头文件即可,接下来开始拷贝编译ctk后生成的库文件,考虑到跨平台,这里为每个平台各创建一个目录,并将相应的库文件拷贝进去,目前在windows-x64、linux-x64、linux-arm64...三个平台下编译了ctk库,因此这里就创建lib-linux-arm64-gcc、lib-linux-x64-gcc、lib-windows-x64-msvc三个目录。.../plugindepends/lib-linux-x64-gcc/ -lCTKCore -lCTKPluginFramework # for linux gcc arm64 compiler equals...linux-x86_64环境下编译运行结果如下图所示。 linux-arm64环境下编译运行结果如下图所示。
() << "strAppPath:" << strAppPath; QByteArray utf8_array = strAppPath.toUtf8(); qDebug()<<"路径切换状态...(1)调用失败的情况 QProcess process; process.start("D:\\linux-share-dir\\我是中文路径\\Program Files\\Release\\ff_video.exe...()<<qba; (2)切换目录解决-_chdir QString strAppPath ="D:\\<em>linux</em>-share-dir\\我是中文路径\\Program Files\\Release\\"...; qDebug() << "strAppPath:" << strAppPath; QTextCodec *code = QTextCodec::codecForName("GB2312");//...()<<qba; (3)切换目录解决-QDir QDir::setCurrent("D:\\linux-share-dir\\我是中文路径\\Program Files\\Release\\"); QProcess
工作原理: 项目地址 breakpad:GitHub - google/breakpad: Mirror of Google Breakpad project 编译安装 linux平台下 linux.../linux-syscall-support 1.下载breakpad和LSS源码 2.将LSS中的linux_syscall_support.h移动到breakpad/src/third_party...() << "Create dump file success"; } else { qDebug() << "Create dump file failed"; }...int*)(NULL); *a = 1; } int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); qDebug...dir.exists(appDirPath)) { bool res = dir.mkpath(appDirPath); qDebug() << "New mkdir "
window下文件一般为GBK格式文件,而Linux系统下文件一般为UTF8文件,当文件读取格式不匹配时,读取到的数据显示为乱码,所以需要转码....QTextCodec *codec = QTextCodec::codecForName("GBK"); QString content = codec->toUnicode(file.readAll()); qDebug...QTextCodec *codec = QTextCodec::codecForName("UTF8"); QString content = codec->toUnicode(file.readAll()); qDebug...源文件 #include #include #include #include static void...codec = QTextCodec::codecForName("GBK"); QString content = codec->toUnicode(file.readAll()); qDebug
海康当之无愧是老大,稳坐第一的宝座很多年了,近期需要将视频监控系统改成采用海康sdk的内核,于是特意去查阅了sdk的使用手册,sdk相关的文档和文件可以直接官网下载到,而且是经常更新的,目前提供了windows和linux...上的,win上的sdk还是更新比较快而且完整的,但是在linux上的就不得不吐槽下了,很旧很旧的版本,不要看打包文件很新,其实里面的内容是很老的,不知道为啥官方不也同步更新linux上的sdk,也许现在...linux上的需求还不是很多吧,但是随着国产化的大力推进,估计不久的将来linux上的也会慢慢的完善起来的,说不定官方早就有了此计划,还有一种个人的猜测是linux上的开发包估计官方自己内部用的新的,可能打算自己做...linux上的各种客户端吧。...<< "打开视频数据失败" << url << NET_DVR_GetLastError(); } } else { qDebug() << TIMEMS <<
Linux桌面系统屏幕信息获取(Qt、X11、Xrandr、Xinerma) 最近在项目测试中,发现了关于Qt - UI分辨率自适应的问题。从大小屏幕互相切换的问题。也引发了关于屏幕检测的问题。...Windows下的获取调用WindowsAPI进行设置,网上大多也给出了解决方案,但是linux在怎么获取,大多都没有提到,所以在这进行讨论。...() << "Number of screens:" << QGuiApplication::screens().size(); qDebug() << "Primary screen:" <<...(); qDebug() orientation()); qDebug(...()); qDebug() refreshRate() << "Hz"; qDebug() <
在Window系统上,打开我的电脑,我们就能够看见系统的每个磁盘的可用空间以及总空间,如下所示: 在嵌入式Linux与QT界面结合的产品开发中,我们在做产品的文件管理模块通常来说也需要做这样一个功能。...方法一:(参考QT大神-飞扬青云的磁盘容量空间控件实现) 利用Linux系统天生就已经提供的df命令来获取,例如我们可以带上-h参数,这样就可以获得以人类可读的格式显示输出,如下所示: 基于韦东山imx6ull...() << "设备名称:" << dev ; qDebug() << "总空间:" << all ; qDebug() << "已经使用了多少空间:" << use ; qDebug...结合QT的QProcess函数或者Linux C提供的popen函数来调用df -h命令来获取磁盘容量信息,然后通过这种方法循环读取每一行,结合自己产品的业务逻辑去获取对应的内容即可。...() <<"totalsize:" << QString("%1%2").arg(QString::number(totalsize, 'f', 1)).arg(total_unit) ; } 在Linux
5.跨平台性: SQLite 可以在各种操作系统上运行,包括 Windows、macOS、Linux 等,提供了广泛的平台支持。 2....} else { qDebug() << "singleInsert...{ qDebug() << "moreInsert...sqlQuery.exec()) { qDebug() << sqlQuery.lastError(); } else { qDebug(...sqlQuery.exec()) { qDebug()<<sqlQuery.lastError(); } else { qDebug()<
依次扫描Ip列表中的各个IP foreach( ip, ipRange ) { int exitCode; //对每个Ip执行ping命令检测其是否在线 qDebug...+ " -n 1 -i 2"; exitCode = QProcess::execute(strArg); #else //其他平台(Linux..." << ip)); #endif if(0 == exitCode) { //it's alive qDebug...; //发射该IP在线的信号 emit commandSuccessed(ip); } else { qDebug...另外,需要注意的是ping命令在Windows下和Linux(Mac)下的命令有所不同,可以参考Linux和Windows下ping命令详解1和Linux和Windows下ping命令详解2
QByteArray allData = file.readAll(); file.close(); // qDebug() << allData; getData(allData...root_obj) { disInfo("JSON format error"); qDebug() << "json format error"; }...)) ipAddress = QHostAddress(QHostAddress::LocalHost).toString(); return ipAddress; } 桌面Linux...桌面Linux效果 4.在开发板上运行Qt程序 如果在桌面运行正常,就可以使用iMX287A开发套件来构建工程,生成可以在iMX287A运行的程序,使用scp命令传输到开发板上还需要使用udhcpc命令来自动获取路由器获取的...桌面Linux版效果: ?
领取专属 10元无门槛券
手把手带您无忧上云