文章目錄
- 一、.pri文件的作用與基本結構
- 作用
- 基本結構
- 二、創建.pri文件
- 如何添加模塊代碼?
一、.pri文件的作用與基本結構
作用
在Qt開發中,.pri文件
(Project Include File)是一種配置包含文件
,用于模塊化管理和復用項目配置
。以下是其核心要點:
模塊化管理
:將項目中公共的配置、源文件路徑、編譯選項等抽取到.pri文件中,避免在多個.pro文件中重復編寫相同內容。
提高可維護性
:通過分模塊管理代碼和配置,使項目結構清晰,便于團隊協作和維護。
跨項目復用
:可將常用配置(如第三方庫路徑、編譯宏等)封裝到.pri文件中,供多個項目共享。
基本結構
.pri文
件的內容與.pro文件
類似,包含變量定義、路徑配置、文件列表等。常見指令示例:
# 設置頭文件路徑
INCLUDEPATH += $$PWD/include# 添加源文件和頭文件
SOURCES += $$PWD/src/file1.cpp \$$PWD/src/file2.cpp
HEADERS += $$PWD/include/file1.h \$$PWD/include/file2.h# 定義預處理宏
DEFINES += MY_DEFINE_MACRO# 配置Qt模塊
QT += core gui# 添加庫文件路徑
LIBS += -L$$PWD/libs -lmylib
與.pro文件的區別:
二、創建.pri文件
這里以鼠標拖動無邊框窗口為例:
創建頭文件和源文件:mouse.h 和 mouse.cpp
mouse.h:
#ifndef MOUSE_H
#define MOUSE_H
#include <QWidget>
#include <QMouseEvent>
#include <QPoint>
QT_BEGIN_NAMESPACE
namespace Ui {
class MouseWidget;
}
QT_END_NAMESPACEclass MouseWidget : public QWidget
{Q_OBJECTpublic:MouseWidget(QWidget *parent = nullptr);
private:Ui::MouseWidget *ui;
protected:void mousePressEvent(QMouseEvent *event);void mouseMoveEvent(QMouseEvent *event);private:QPoint mOffset;//窗口移動,相對偏移位置
};
#endif // MOUSE_H
mouse.cpp
#include "mouse.h"
MouseWidget::MouseWidget(QWidget *parent): QWidget(parent)
{
}
//重寫父類的虛函數
void MouseWidget::mousePressEvent(QMouseEvent *event)
{mOffset = event->globalPos() - this->pos();
}
void MouseWidget::mouseMoveEvent(QMouseEvent *event)
{this->move(event->globalPos() - mOffset);
}
如何添加模塊代碼?
1、直接將代碼剪切到common文件夾下,然后選擇添加現有文件:
2、直接在工程目錄中創建:
3、檢查.pri文件,查看模塊代碼是否創建成功:
common.pri代碼:
在項目引入mouse.h頭文件時可能會出現:Error while building/deploying project helloworld (kit: Desktop Qt 5.6.2 MinGW 32bit) When executing step "make"
,這可能是項目找不到自定義的模塊代碼導致的。
解決辦法:記得檢查自己的.pri代碼中有沒有,INCLUDEPATH += $$PWD 和 DEPENDPATH += $$PWD
,如果沒有就手動添加,不然項目找不到自定義的模塊代碼。
INCLUDEPATH += $$PWD
DEPENDPATH += $$PWDHEADERS += \$$PWD/mouse.h
SOURCES += \$$PWD/mouse.cpp
創建成功就可以在項目中使用模塊化代碼了。