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、构建、再运行,才会看到效果。