添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

作者: 一去、二三里
个人微信号: iwaleon
微信公众号: 高效程序员

在Qt项目开发过程中,往往需要对程序的一些信息进行控制,比如:打印日志、调试信息等,便于我们后期查找、跟踪及定位问题。

下面,我们来分享下常用的几种方式。

我们简单地写一些测试代码,用qDebug输出一些基本信息。

#include <QApplication>
#include <QWidget>
#include <qDebug>
int main(int argc, char *argv[])
    QApplication app(argc, argv);
    qDebug() << QString::fromLocal8Bit("一去丶二三里");
    qDebug() << QString::fromLocal8Bit("青春不老,奋斗不止!");
    qDebug() << QString::fromLocal8Bit("纯正开源之美,有趣、好玩、靠谱。。。");
    QWidget w;
    w.show();
    return app.exec();

应用程序输出

大部分情况下,我们建立的是【Qt Widgets Application】(用于GUI开发)项目,其输出信息在【应用程序输出】窗口。

这对于开发人员来说调试比较方便,但是,当你把整个程序打包出去的时候(比如:给测试人员或者其他人员),他们根本无法获取这些信息(不方便),所以我们可以采用下面两种方式。

控制台输出

对于【Qt Widgets Application】来说,我们也可以像【Qt Console Application】(新建项目时可以选择)一样,进行控制台输出,只不过需要自行控制:

  1. 在.pro文件中添加:
CONFIG += console
  1. 选择:项目 -> 运行,勾选【Run in terminal】(在终端运行)选项。

这时,我们的输出信息就可以显示在控制台上了。

重定向至文件

主要采用自定义消息处理机制,重定向输出信息至文件。

其中输出格式可以自定义,比如:输出信息、文件、函数、行号、日期时间。这样就很利于我们追踪了。

详细内容请参考:Qt之qInstallMessageHandler(重定向至文件)

在.pro 文件中添加 Config += console,qt 中将显示控制台窗口,并会将qDebug()中的信息输入到控制台中 等价于 在 项目配置中 ,qmake 额外参数项中加入 "CONFIG+=console",或者如下 qt .pro 工程文件输出日志 使用message 函数message("ArcGIS Runtime... 在这个示例中,我们创建了一个自定义的QEvent事件对象,并在发送消息按钮的点击事件处理函数中,使用QWidget::postEvent()函数将该事件发送到目标窗口。在MainWindow类的event()函数中,我们重载了QWidget类的event()函数,拦截并处理自定义事件。当收到自定义事件时,输出消息内容,并返回true表示已经处理该事件。在QT中,可以使用QWidget类的方法来给窗口发送消息。构造一个自定义的QEvent事件对象(或者使用已有的QEvent子类)。