qt类放在不同文件夹

qt类放在不同文件夹,第1张

较为简单的一种:在你的工程所在的文件夹下新建你要作为分组项的文件夹 然后就对应的头文件和源文件移入到该项目中 。然后用QtCreator打开项目 选择如下:

这种方式形成的目录结构如下:

另外一种方式: 通过给工程文件pro添加pri文件实现 具体 *** 作减参考文献【1】

注意: 两种方式都要注意 我们在添加头文件时 要写清楚目录地址 例如 include" GUI/filebrowser"

QT中,qmake为编译工具,通过qmke可以生成一个makefile文件,这就和pro文件有关,下面介绍pro文件的写法:

TELEPLATE :模板

app:默认不写时为app,即应用程序的makefile。

lib :建立一个库的makefile。

TARGET:生成应用程序名

CONFIG:配置信息

CONGIF += qt  warn_on release

分别意思是,告诉qmake这个应用程序是使用QT连编的,这就是说qmake再连接和为编译添加所需要的包含路径的时候会考虑到用qt库。warm_on告诉qmake要把编译器设置为输出警告信息的。release告诉应用程序必须被连编成一个发布版本。开发过程中可设置为也可以为debug版本。

INCLUDEPATH:头文件包含路径

CODECFORSRC = gbk :源文件编码方式

#工程中的源文件和头文件

SOURCES += 

HEADERS +=

RESOURCES += qrc/painter.qrc //  工程中包含的资源文件

FORMS += forms/painter.ui  //  工程中包含的ui设计文件

LIBS += -l(库名)

#平台相关

win32 {

SOURCES += hello_win.cpp

}

unix{

LIBS +=-lcur3

}

如果项目工程大文件多:

可以将SOURCES,HEADERS ,FORMS单独拿出来放到单独一个test.pri文件中,然后在pro文件中用 include(test.pr)进行管理。

pro文件中$和$$符号含义和用法:

包含pri文件:

自定义变量 :

BASEDIR = .. /.. /.. /.. /

include ( $$ { BASEDIR } pri / common.pri )

include ( $$ { BASEDIR } pri / baseapk.pri )

INCLUDEPATH += $$ { BASEDIR } include

INCLUDEPATH += $$ { BASEDIR } include / forecastbusiness

自定义变量:

myVersion = 1.2

TARGET = software $$ { myVersion }

FILE = main.cpp

SOURCES += $$ FILE

重新qmake 后正确生成目标程序为software1.2的工程。

首先是先新建一个子目录项目,再根据需要在子目录项目中添加一个应用程序项目以及多个库的项目,子目录项目默认就只有一个.pro文件。

从“#”开始,到这一行结束。

模板变量告诉qmake为这个应用程序生成哪种makefile。

指定编译器选项和项目配置,值由qmake内部识别并具有特殊意义。

以下配置值控制编译标志:

qmake添加这个变量的值作为编译器C预处理器宏(-D选项)。

指定编译项目时应该被搜索的#include目录。

指定程序编译时依赖的相关路径。

指定在何处放置目标文件。

指定目标文件的名称。默认情况下包含的项目文件的基本名称。

指定构建目录。

指定来自moc的所有中间文件放置的目录(含Q_OBJECT宏的头文件转换成标准.h文件的存放目录)。

指定所有中间文件.o(.obj)放置的目录。

指定Qt资源编译器输出文件的目录(.qrc文件转换成qrc_*.h文件的存放目录)。

指定链接到项目中的库列表。-L后是库文件的目录,-l后是具体的库的名字(后缀不用加)。例如:

LIBS += -L$$PWD/../../../ThirdLib/winapi -lWSock32

仅适用于Windows,指定的图标应该包含在一个生成的.rc文件里。如果RC_FILE 和RES_FILE变量都没有设置这才可利用。

指定包含用户界面翻译文本的翻译(.ts)文件列表。

为Windows平台加的依赖平台的文件的简单的作用域看起来就像这样:

win32 { SOURCES += hello_win.cpp }

每次添加一个子项目就会在SUBDIRS项目加上一个项目名,子目录项目的 TEMPLATE = subdirs 。 CONFIG += ordered 是让项目按照顺序编译,由于主程序依赖于对应的库,一般都是把MainApp放在SUBDIRS的最后。

对于一些库和主程序都需要的目录设置 (构建目录、obj生成目录、moc文件生成目录等),可以统一写在一个pri文件中:

在需要引用的pro文件中:

include($$PWD/../../../Path.pri)

message($$INCLUDEPATH) , 会在概要信息中打印相关变量的值

主程序的 TEMPLATE = app 。除了常规的pro设置外,要记得将自己编的库的头文件目录加上,并将生成的dll通过LIBS链接:

库的 TEMPLATE = lib 。库在通过Creator新建的时候会生成一个xxx_global.h,定义了导出库的相关信息:

在库中要作为接口的类记得加上对应的宏:

class TESTLIBSHARED_EXPORT TestLib : public QObject

静态库貌似不需要这个,待测试...


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11757076.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存