当前位置: 首页 > news >正文

织梦微信网站模板阜阳讯拓网站建设公司

织梦微信网站模板,阜阳讯拓网站建设公司,佛山优化网站关键词,公司建设网站费用做那个科目在Qt中#xff0c;一般习惯使用qDebug信息进行输出和打印调试信息到console或者文件中#xff0c;在qDebug中#xff0c;也有一些小技巧#xff0c;可以帮助我们更好的使用qDebug打印日志记录#xff0c;本文分享了qDebug使用的一些小技巧。 1. 打印出文件名、行号、调用函… 在Qt中一般习惯使用qDebug信息进行输出和打印调试信息到console或者文件中在qDebug中也有一些小技巧可以帮助我们更好的使用qDebug打印日志记录本文分享了qDebug使用的一些小技巧。 1. 打印出文件名、行号、调用函数等上下文信息 有些时候是不是可能会遇见这样的事情自己不知道在哪儿打印了一串debug信息但是现在不知道在哪儿了并且由于文件很多比较难以寻找。本次提到的方法就可以解决这个问题。首先要明白一件事打印出行号、文件名一定要在调用qDebug时就知道当前位置C语言是通过 __FILE__ __LINE__ 这些东西得到的而qDebug也是一样的方式它是一个宏实现是这个样子的。 #define qDebug QMessageLogger(QT_MESSAGELOG_FILE, QT_MESSAGELOG_LINE, QT_MESSAGELOG_FUNC).debug #define qInfo QMessageLogger(QT_MESSAGELOG_FILE, QT_MESSAGELOG_LINE, QT_MESSAGELOG_FUNC).info #define qWarning QMessageLogger(QT_MESSAGELOG_FILE, QT_MESSAGELOG_LINE, QT_MESSAGELOG_FUNC).warning #define qCritical QMessageLogger(QT_MESSAGELOG_FILE, QT_MESSAGELOG_LINE, QT_MESSAGELOG_FUNC).critical #define qFatal QMessageLogger(QT_MESSAGELOG_FILE, QT_MESSAGELOG_LINE, QT_MESSAGELOG_FUNC).fatal而其中 #define QT_MESSAGELOG_FILE __FILE__ #define QT_MESSAGELOG_LINE __LINE__ #define QT_MESSAGELOG_FUNC Q_FUNC_INFO所以qDebug 本身应该是支持了打印上下文信息的但是为什么我们平时打印的信息没有呢 这个是因为需要去设置一下message的pattern 设置pattern有两种方法 qSetMessagePattern 函数 通过函数设置格式例如: qSetMessagePattern([%{type}]%{file}:%{line}\t%{time}\t%{function}\n%{message}) QT_MESSAGE_PATTERN 环境变量 通过设置全局环境变量或者使用qputenv(QT_MESSAGE_PATTERN, [%{type}]%{file}:%{line}\t%{time}\t%{function}\n%{message});的手法来设置pattern 或者换个思路qt为我们提供了一个handle使用 qInstallMessageHandler设置 void msgHandle(QtMsgType type, const QMessageLogContext context, const QString msg) {printf(Debug: %s (%s:%u, %s)\n, localMsg.constData(), context.file, context.line, context.function); }qInstallMessageHandler(msgHandle); 2. 将qDebug内容输出到文件中 将qDebug输出到文件当中则是直接采用 qInstallMessageHandler的思路来做在这个函数中将printf改成fprintf即可。 3. 正式运行时屏蔽掉 debug 信息 在qlogging.h中有一段代码 #if defined(QT_NO_DEBUG_OUTPUT) # undef qDebug # define qDebug QT_NO_QDEBUG_MACRO #endif意味着其实当定义了上面的qDebug宏后其实下面还有宏条件重新定义展开看看 QT_NO_QDEBUG_MACRO则是 #define QT_NO_QDEBUG_MACRO while (false) QMessageLogger().noDebug所以我们在编译时加入一个宏即可pro文件直接写法如下 DEFINES QT_NO_DEBUG_OUTPUT
http://www.hkea.cn/news/14503798/

相关文章:

  • 如何把网站做权重短视频宣传片制作
  • 深圳网址网站建设公司哈尔滨建设网站公司吗
  • 新乡营销型网站建设百度排行榜风云榜
  • 手机网站页面模板如何网站推广宣传
  • 有做医学手术视频的网站广西金兰工程建设管理有限公司网站
  • 企业网站搜索优化网络推广wordpress type参数
  • 菏泽去哪了做网站网站站点地图
  • 网站开发都需要什么工具app开发 网站建设
  • 淮安品牌网站建设天津网站制作套餐
  • 鲜花店的网站建设wordpress主题添加目录
  • 株洲网站关键词优化恩平国有建设用地使用权拍卖网站
  • 龙岩网站建设馨烨建设银行网站怎么基本转个人
  • 网站建设源代码共享建设通银行官方网站
  • 最便宜的网站建设公司wordpress 添加固定字段
  • 苏州高级网站建设wordpress ftp上传插件
  • wordpress+站群插件网站定制怎么选择
  • 格力网站的建设情况北京到安阳高铁时刻表查询
  • 娄底网站建设公司北京 网站制作
  • 自己做网站的给微信取个什么名字好企业成品网站模板
  • 网站外链购买网站挂到国外服务器地址
  • 漯河网站建设-千弘网络儿童网站开发 论文
  • 免费企业建网站家装公司十大口碑排名
  • 建设信用购物网站齐家装饰公司官网
  • 门户网站制作建设四川电脑网站建设
  • 网站建设尾款收取免费生成网站软件下载
  • 住房和城乡建设部网站杂志网站建设流量从哪里来
  • 跨平台 移动网站开发怎样做seo网站链接
  • 滨江区建设局官方网站电商型企业网站建设
  • 南昌网站建设报价wordpress博客分页
  • 网站资料如何做脚注wordpress记事本插件