《QT学习笔记 —— 2. 使用向导创建QT项目》

一、通过向导创建QT项目

1. 启动Qt CreatorQt Creator的安装参考《QT学习笔记 —— 1. Qt5 Creator的安装教程》

 

2. 选择 New Project或者选择菜单栏 【文件】-【新建文件或项目】菜单项

《QT学习笔记 —— 2. 使用向导创建QT项目》

 

3. 弹出New Project对话框,选择Qt Widgets Application

《QT学习笔记 —— 2. 使用向导创建QT项目》

 

4. 选择【Choose】按钮,弹出如下对话框

《QT学习笔记 —— 2. 使用向导创建QT项目》

 

5. 设置项目名称和路径,按照向导进行下一步

《QT学习笔记 —— 2. 使用向导创建QT项目》

 

6. 向导会添加一个继承自QWidget的类,可以在这里修改类的名字和基类

《QT学习笔记 —— 2. 使用向导创建QT项目》

 

7. 点击完成,这样通过向导就创建好了一个QT的项目

《QT学习笔记 —— 2. 使用向导创建QT项目》

 

二、编译

QT的编译方式有三种,下面一一介绍。

1. 通过快捷键编译:CTRL+R

2. 在项目文件夹上点击鼠标右键,点击运行即可

《QT学习笔记 —— 2. 使用向导创建QT项目》

3. 点击左下角的按钮,按需求选择对应的编译方式

《QT学习笔记 —— 2. 使用向导创建QT项目》

通过编译并且运行,正常情况下会弹出一个空白窗口,如下所示:

《QT学习笔记 —— 2. 使用向导创建QT项目》

编译之后,会在我们对应的路径下生成一个文件夹,它包含当前项目的编译信息。

《QT学习笔记 —— 2. 使用向导创建QT项目》

 

三、QT应用程序的框架分析

通过前面QT自带的向导创建了一个QT项目。它包含四个文件,一个01_QtDemo.pro文件,一个main.cpp文件,一个widget.cpp文件,一个widget.h文件。下面分别介绍下这几个文件的内容:

main.cpp

《QT学习笔记 —— 2. 使用向导创建QT项目》

 

widget.h:

《QT学习笔记 —— 2. 使用向导创建QT项目》

 

widget.cpp

《QT学习笔记 —— 2. 使用向导创建QT项目》

 

01_QtDemo.pro:  .pro就是工程文件(project),它是qmake自动生成的用于生产makefile的配置文件。

《QT学习笔记 —— 2. 使用向导创建QT项目》

如果我们想更改应用程序的名字,就可以这样修改,项目文件中,TARGET = 01_QtDemo改为TARGET = zhubao,保存编译运行即可。

《QT学习笔记 —— 2. 使用向导创建QT项目》

《QT学习笔记 —— 2. 使用向导创建QT项目》

《QT学习笔记 —— 2. 使用向导创建QT项目》

生成的makefile的模板类型:
TEMPLATE = app
    app -建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用
    lib - 建立一个库的makefile。
    vcapp - 建立一个应用程序的VisualStudio项目文件。
    vclib - 建立一个库的VisualStudio项目文件。
    subdirs -这是一个特殊的模板,它可以创建一个能够进入特定目录并且为一个项目文件生成makefile并且为它调用make的makefile。

指定生成的应用程序名: 
TARGET = zhubao

工程中包含的头文件
HEADERS += include/painter.h

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

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

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
这条语句的含义是,如果QT_MAJOR_VERSION大于4(也就是当前使用的Qt5及更高版本)需要增加widgets模块。如果项目仅需支持Qt5,也可以直接添加“QT += widgets”一句。不过为了保持代码兼容,最好还是按照QtCreator生成的语句编写。


配置信息
CONFIG用来告诉qmake关于应用程序的配置信息。
CONFIG += c++11   //使用c++11的特性。在这里使用“+=”,是因为我们添加我们的配置选项到任何一个已经存在中。这样做比使用“=”那样替换已经指定的所有选项更安全。