auto头文件 qt_Qt 工程的创建一

本文详细介绍了如何创建Qt Widgets Application,重点讲解了.pro文件的配置,包括QT模块、TEMPLATE、TARGET、CONFIG、UIC_DIR、RCC_DIR、MOC_DIR等关键配置项,以及如何指定源文件、头文件、资源文件和库文件。同时,文章还提到了MainWindow类的使用、信号与槽的连接方式以及.pro文件中的跨平台处理。
摘要由CSDN通过智能技术生成

创建Qt Widgets Application

目录结构如上:

1.pro文件:配置项详细说明注释:注释是从一行的#开始,到这一行的结束。

QT += :这个是添加QT项目需要的模块的,若项目中要排除某个模块,也可用QT -=配置项。

TEMPLATE = : 这个配置项确定qmake为这个应用程序生成哪种makefile 。有下面五种形式可供选择:app:建立一个应用程序的makefile,这个是默认值,若模块项未指定,将默认使用此项;

lib:建立一个库的makefile;

vcapp:建立一个应用程序的VisualStudio项目文件;

vclib:建立一个库的VisualStudio项目文件;

subdirs:这是一个特殊的模板,可以创建一个可进入特定目录并为一个项目文件生成makefile,此makfile可以调用make;

4. TARGET = :这个配置项用来指定最后生成的目标应用程序的名称。

5. CONFIG += : 用来告诉qmake关于应用程序的配置信息,使用+=表示在现有的配置上添加,这样会更安全。比如,CONFIG += qt warn_on release 其具体的意义为:qt :告诉qmake此程序是使用qt来连编的。即qmake在连接、为编译添加所需包含路径时会考虑qt的库;

warn_on :告诉qmake要将编译器设置为输出警告信息形式;

release :告诉qmake应用程序必须被连编为一个可发布的应用程序。开发过程中,也可以使用debug;

6. UIC_DIR += :用来指定uic命令,将.ui文件转化为ui_*.h文件存放的目录。

7. RCC_DIR += :用来指定rcc命令,将.qrc文件转换成qrc_*.h文件存放的目录。

8. MOC_DIR += :用来指定moc命令,将含有Q_OBJECT的头文件转换成标准.h文件存放的目录。

9. OBJECTS_DIR += :用来指定目标文件obj的存放目录。

10. DEPENDPATH += : 用来指定工程的依赖路径。

11. INCLUDEPATH += : 用来指定工程所需要的头文件。

12. CODECFORSRC += : 用来指定源文件的编码格式。

13. FORMS += :用来指定工程中的ui文件。

14. HEADERS += : 用来指定工程中所包含的头文件。

15. SOURCES += :用来指定工程中包含的源文件。

16. RESOURCES += :用来指定工程中所包含的资源文件。

17. LIBS += :用来指定引入的lib文件的路径,一般会在前面加下参数-L,根据不同的版本可以分为两种形式:Release: LIBS += -L folder Path //release版本引入的lib文件

Debug: LIBS += -L folder Path //debug版本引入的lib文件

18. DEFINES += : 用来定义编译选项。

19. DESTDIR += :用来指定目标的生成路径。

20. 跨平台处理信息也要写在.pro文件中。 其示例如下:

win32{

unix{

2. .pro文件配置实例

//添加QT依赖的库

QT += gui

QT += core xml network multimedia serialport

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

//添加c11配置支持

CONFIG += c++11

//输出文件的名称

TARGET = YouAppName

//配置控制台输出

CONFIG += console

//输出类型application

TEMPLATE = app

//源文件

SOURCES += main.cpp \

appconfig.cpp \

opendoorthread.cpp \

TestProject/testform.cpp \

TestProject/common.pb.cpp \

TestProject/goods_req.pb.cpp \

TestProject/goods_resp.pb.cpp

//头文件

HEADERS += \

appconfig.h \

opendoorthread.h \

TestProject/testform.h \

TestProject/common.pb.h \

TestProject/goods_req.pb.h \

TestProject/goods_resp.pb.h

//配置debug和release

CONFIG +=debug_and_release

CONFIG(debug,debug|release){

DESTDIR += $$PWD/debug

LIBS += -L$$PWD/debug/ -lThorModel

LIBS += -L$$PWD/debug/ -lThorUtil

LIBS += -L$$PWD/debug/ -lThorBLL

LIBS += -L$$PWD/debug/ -lThorHardwareUtil

LIBS += -L$$PWD/debug/ -lprotobufd

LIBS += -L$$PWD/debug/ -lprotobuf-lited

LIBS += -L$$PWD/debug/ -lopencv_core2410d

LIBS += -L$$PWD/debug/ -lopencv_highgui2410d

LIBS += -L$$PWD/debug/ -lopencv_imgproc2410d

LIBS += -L$$PWD/debug/ -lQtActionDetectd

}else{

}

//需要的头文件

INCLUDEPATH += $$PWD/AllDLL/include

INCLUDEPATH += $$PWD/debug/3rdparty/opencv-2.4.10/include \

$$PWD/debug/3rdparty/opencv-2.4.10/include/opencv \

$$PWD/debug/3rdparty/opencv-2.4.10/include/opencv2

//ui

FORMS += \

TestProject/testform.ui

qmake非常方便、快捷,是一个轻量级的makefile生成工具,在使用该指令前要正确地编写.pro文件。

MainWindow类:继承 QMainWindow类(class Q_WIDGETS_EXPORT QMainWindow : public QWidget)

main:创建MainWindow类栈对象,并show

mainwindow.cpp:

static QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType = Qt::AutoConnection);

函数参数详解:第一个参数sender为发送对象;第二个参数为发送对象里面的一个信号;第三个参数为接收对象;第四个参数为接收对象里面的槽函数。一般我们使用发送者触发信号,然后执行接收者的槽函数。

自定义信号只需要在头文件的类声明中声明, 然后将槽连接到信号即可,无需实现信号函数。

信号函数与槽函数的返回值类型在任何时候都可以不同,而且如果不关心信号传递下来的参数,信号函数与槽函数的参数列表也可以不相同, 但是如果要访问信号传递下来的任何参数时,信号函数与槽函数的参数列表必须相同。

比如: QObject::connect(this,SIGNAL(NotifyTextChange(QString,bool)),this,SLOT(AnsTextChange(QString)),Qt::AutoConnection);

另外:emit 是可以省略的,因为emit是一个空宏,但是为了起到标识作用,一般都会在

信号函数调用前面加上 emit 标识信号发送

connect()函数使用的一个实例:

signals & slots

如上图所示,信号参数用SIGNAL包含,槽函数用SLOT包含。然后在对应头文件里面添加槽函数,如下图所示:

mainwindow.ui文件可视化的窗口设计界面

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值