前言
本节来讲手动建Qt工程。既然Qt界面设计部分的代码是自动生成的,那为什么还要讲手动建工程。对于初学者来说,打好基础十分重要。为了初学者更好地理解Qt,印象更深刻,本节还是要讲解一下简单的手动建工程,并讲解pro文件。建议读者跟着小编一起建工程,如果说真的急于进入项目开发,可以直接看本文后半部分-对工程文件的讲解,重点是pro文件讲解,再进入下一节。话不多说,开始本节讲解。
手动建工程
首先建一个无中文路径的文件夹,用于存放工程。

打开Qt Creator,新建工程,点击New Project;

在弹出来的页面点击其他项目->Empty qmake Project->Choose,这里是建空的工程

接下来填入工程名称,创建路径选择之前建好的空文件夹,点击下一步;

点击下一步;

点击完成;

此时可以看到一个建好的空工程了;

鼠标放在工程名右击鼠标,点击添加新文件…,我们来添加源文件;

在弹出的页面选择C+±>C++ Source File->Choose,建立源文件;

输入名称,注意:这里是 .cpp文件,不是.c。点击下一步;

点击完成;

可以看到源文件已经添加到工程中,工程建立完毕,此时可以进入代码的编写;

.pro文件敲入代码,后面我会详细介绍pro文件;
QT += widgets
TARGET = 02_qt
TEMPLATE= app
SOURCES += \
main.cpp
源文件main.cpp敲入代码,同样,后面我会详细介绍源文件;
#include <QApplication>
#include <QWidget> //窗口控件基类
#include <QLabel> //标签控件
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget w; //创建对象
w.setWindowTitle("关注<程序媛讲QT>"); //窗口标题
/*标签控件*/
QLabel mylabel; //创建对象
mylabel.setText("HELLO QT"); //给标签填入内容
mylabel.setParent(&w); //指定父对象,如不指定,窗口与标签无关系
mylabel.move(50,50); //移动标签
w.show(); //窗口显示
return a.exec();
}
代码完成,点击左下角运行按钮或者快捷键(Ctrl+R),编译并运行代码;

可以看到工程运行正常。

工程文件讲解
.pro文件
本节的pro文件代码:
QT += widgets
TARGET = 02_qt
TEMPLATE= app
SOURCES += \
main.cpp
- pro文件注释:.pro文件注释是以#开始,到该行结束。
- QT += widgets:这里是添加模块,Qt的模块有很多种,只有添加了所用控件的模块,才能在工程头文件或源文件中include该控件的头文件,并对控件进行操作。下面是Qt5的几个基本模块列举:
| 模块名 | 用途 |
|---|---|
| Qt Widgets | 图形界面 |
| Qt Webkit | 浏览器引擎 |
| Qt Test | 测试 |
| Qt SQL | 数据库 |
| Qt Core | 内部基本模块 |
| Qt GUI | 内部基本模块 |
| Qt Network | 网络 |
| Qt Mulitmedia | 多媒体 |
| Qt Quick | 另一种框架,用java script实现 |
| Qt QML | 另一种框架,用java script实现 |
| Qt Quick Controls | 另一种框架,用java script实现 |
| Qt Quick Dialogs | 另一种框架,用java script实现 |
以本节为例,在工程开发中,如果我们想使用QWidget窗口控件基类,只需要鼠标放在代码QWidget上,键盘按F1打开帮助文档,在帮助文档中可以知道QWidget怎么使用,从下图可以看到使用QWidget窗口控件基类所需要在pro文件中添加的是widgets模块。

- TARGET = 02_qt:生成的应用名,工程编译后生成的exe文件名。

- TEMPLATE=app:qmake为这个应用程序生成哪种makefile,本工程qmake生成app类型的makefile,makefile类型通常会有以下选择:
| makefile类型 | 作用 |
|---|---|
| app | 建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用。 |
| lib | 建立一个库的makefile。 |
| vcapp | 建立一个应用程序的VisualStudio项目文件。 |
| vclib | 建立一个库的VisualStudio项目文件。 |
| subdirs | 这是一个特殊的模板,它可以创建一个能够进入特定目录并且为一个项目文件生成makefile并且为它调用make的makefile。 |
- SOURCES +=main.cpp:工程中包含的源文件
还有本工程未用到但常见的: - HEADERS += include/painter.h :工程中包含的头文件
- FORMS += forms/painter.ui:工程中包含的.ui设计文件
- RESOURCES += qrc/painter.qrc:工程中包含的资源文件
.cpp文件
本节的源文件代码:
#include <QApplication>
#include <QWidget> //窗口控件基类
#include <QLabel> //标签控件
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget w; //创建对象
w.setWindowTitle("关注<程序媛讲QT>"); //窗口标题
/*标签控件*/
QLabel mylabel; //创建对象
mylabel.setText("HELLO QT"); //给标签填入内容
mylabel.setParent(&w); //指定父对象
mylabel.move(50,50); //移动标签
w.show(); //窗口显示
return a.exec();
}
- #include :添加要使用到控件的头文件。
- QLabel mylabel:在使用控件前需要创建对象,这里的QLabel为标签控件,QLabel的功能就是显示文字或者图片,没有用户交互功能,后续章节我会讲解各个控件的使用。
- mylabel.setParent(&w):指定父对象,如不指定,窗口与标签无关系。
- w.show():窗口显示,只有这句才会让窗口显示。
- return a.exec():程序进入消息循环,等待可能输入进行响应。这里main()把控制权转交给Qt,Qt完成事件处理工作,当应用程序退出的时exec()的值就会返回。在exec()中,Qt接受并处理用户和系统的事件并且把它们传递给适当的窗口部件。
本文详细介绍了如何手动创建一个Qt工程,包括新建无中文路径的文件夹,使用Qt Creator创建Empty qmake Project,添加源文件,以及编写.pro和.cpp文件。同时,文章讲解了.pro文件的作用,如添加模块、设置应用名和模板类型,并举例说明了如何根据控件选择所需模块。最后,展示了简单的源文件代码,包括添加头文件,创建对象和设置父对象。
214

被折叠的 条评论
为什么被折叠?



