Qt 多项目管理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt 多项目管理相关的知识,希望对你有一定的参考价值。
参考技术A首先是先新建一个子目录项目,再根据需要在子目录项目中添加一个应用程序项目以及多个库的项目,子目录项目默认就只有一个.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
静态库貌似不需要这个,待测试...
Qt系列文章之二十八(基于QThread多线程概述)
文章目录
前言
终于算是写到一个比较核心的功能了,对于一个项目,多线程是必不可少的,当然有的也不需要,不是说做项目就一定要使用多线程,不过一般复杂点的项目,多线程是必不可少的,所以从本章开始,将详解Qt多线程应用,以及pthread的应用详解,C++11多线程等都会涉及,不过还是以Qt中的QThread为主,下面讲解QThread的概念。
概念讲解
一个应用程序一般只有一个线程,一个线程内的操作是顺序执行的,如果有某个比较消耗时间的计算或操作,比如网络通信中的文件传输,在一个线程内操作时,用户界面就可能会冻结而不能及时响应。这种情况下,可以创建一个单独的线程来执行比较消耗时间的操作,并与主线程之间处理好同步与数据交互,这就是多线程应用程序。
Qt为多线程操作提供了完整的支持。QThread 是线程类,是实现多线程操作的核心类,一 般从QThread继承定义自己的线程类。线程之间的同步是其交互的主要问题,Qt 提供了QMutex、QMutexLocker、QReadWrit
以上是关于Qt 多项目管理的主要内容,如果未能解决你的问题,请参考以下文章