QT中的PRI文件

来源:互联网 发布:淘宝多少天默认收货 编辑:程序博客网 时间:2024/06/11 13:18

QT中的PRI文件,是由PRO文件更改后缀实现的,目前我找到2个关于PRI的文档:

http://blog.csdn.net/qinpanke/article/details/22199857#t6

http://blog.csdn.net/redpetallsg/article/details/7041936

http://blog.csdn.net/hpwzd/article/details/7562539   - 这篇文章说明通过 PRI可以对其它工程进行编译

前者主要是实现PRI文件对不同目录下面的文件的引用

后者对PRI文件中的一些变量实现了程序控制(控制DEBUG信息是否显示)

下面是对前者的一些代码说明:(目前还没有弄懂,弄懂了再来写)

下面是对后者的一些代码说明:

//test.pro文件中这样定义:
include(devinfo.pri)  这一句我也没有加,我是先在工程下面用PRO新建了一个PRI文件,然后把这个PRI文件加到工程中,它自动就有了这句,include(devinfo.pri)   中间还可以指定PRI的路径,比如 include(../qextserialport/src/devinfo.pri)  

还有下面一句:
OTHER_FILES += \
    devinfo.pri
//devinfo.pri文件中这样定义:可以通过“#”来实现预编译
# Debug output from waveform generation
#DEFINES += LOG_WAVEFORM   -- 这句是否注释可以控制调试信息是否输出
//utils.h中这样定义:
#ifndef UTILS_H
#define UTILS_H
#include <QDebug>
class NullDebug
{
public:
    template <typename T>
    NullDebug& operator<<(const T&) { return *this; }
};
inline NullDebug nullDebug() { return NullDebug(); }
#ifdef LOG_WAVEFORM
#   define WAVEFORM_DEBUG qDebug()
#else
#   define WAVEFORM_DEBUG nullDebug()
#endif
#endif // UTILS_H
//代码中如下使用
WAVEFORM_DEBUG << "Waveform::paintEvent"
                       << "windowPosition" << m_windowPosition
                       << "windowLength" << m_windowLength;
这样就可以通过pri文件来实现工程中是否需要输出debug信息了
在更改了PRI文件后,需要对工程清除,执行QMAKE、构建、再运行,才会看到效果。


0 0