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

做一个模板网站多少钱百度关键词竞价和收费的方法

做一个模板网站多少钱,百度关键词竞价和收费的方法,广东品牌设计公司,嘉兴建设局网站在Qt中,一般习惯使用qDebug信息进行输出和打印调试信息到console或者文件中,在qDebug中,也有一些小技巧,可以帮助我们更好的使用qDebug打印日志记录,本文分享了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有两种方法:

  1. qSetMessagePattern 函数
    通过函数设置格式,例如: qSetMessagePattern("[%{type}]%{file}:%{line}\t%{time}\t%{function}\n%{message}")

  2. 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.mmbaike.com/news/76868.html

相关文章:

  • 网站建设兰州今天新闻最新消息
  • 郑州市网站制作公司seo优化推广专员招聘
  • 网站建设栏目标语口号网络营销的八大职能
  • 虚拟机中建设iis网站网络营销的策划流程
  • 在原域名给公司建立网站深圳百度国际大厦
  • 网站建设邮箱云盘网页版登录
  • 想做个自己的网站竞价推广教程
  • 负责县政府网站建设 更新做推广app赚钱的项目
  • lamp网站开发经验最好的bt磁力搜索引擎
  • struts动态网站开发综合实训总结营销软文范例大全100
  • 团购网站营销方案百度怎么发自己的小广告
  • 网站备案填写要求吗如何建立网站 个人
  • wordpress菜单手机显示下拉网络关键词优化软件
  • 网站开发接私单网站建设杭州
  • 百度站长平台网页版深圳网站建设公司官网
  • 私人做网站图片网络营销seo是什么意思
  • 做wap网站能火吗友情链接对网站的作用
  • 做搜狗手机网站长尾百度快照有什么用
  • 辽宁建设工程信息网官网新域名广州百度seo
  • 网站产品页排名怎么做谷歌推广运营
  • 网站制作做站长挣钱企业营销
  • 做免费采集电影网站犯法吗关键词推广软件排名
  • 上海最近三天的新闻新手学seo
  • 无锡上网站建设网站推广的目的
  • 南充建设公司网站论坛推广怎么做
  • 做58网站怎么赚钱网络营销成功的品牌
  • 2020全国封城时间表河南seo快速排名
  • 文化传媒可以做网站吗国内最好用免费建站系统
  • 南昌网站设计案例外链代发免费
  • 浦东新区专业做网站百度广告公司联系方式