【QT入门】关于一个新的QT程序
一、用 QT创建一个新程序
1.打开QT Creactor,选择新建:
也可以在上方菜单栏选择文件再选择新建:
2.选择application,widgets application(控件应用)
3.确定项目名称及存储位置
注意:1、在项目命名时不能出现中文、标点符号及空格。
2、存储路径中也不能存在中文
4.修改版本及组件等
QWidget是父类,QMainWindow和Dialog是子类。
直接选择下一步
组件看个人选择
继续下一步
团队合作时选择控制系统
5.创建完成的页面
二、生成的文件简介:
1.project文件:
.pro文件,项目文件,相当于用VS写代码时生成的vcproj文件。
2.源文件.cpp:
main.cpp是程序入口,myWidget.cpp是自己创建的窗口的代码。
3.头文件.h:
myWidget.h是窗口代码的头文件。
4.翻译文件.ts:
翻译语言可以自选。
三、基本工程解释
1.源文件代码及解释:
main函数:
#include "mywidget.h"//包含头文件
#include <QApplication>//包含一个应用程序的头文件
//main程序入口,argc命令行变量的数量,argv命令行变量的数组
int main(int argc, char *argv[])
{
//a应用程序对象,在QT中应用程序对象有且只有一个
QApplication a(argc, argv);
//w窗口对象,myWidget是用户创建的类名,用该类名实例化一个对象w
myWidget w;//myWidget的父类是QWidget(空窗口)
//窗口对象,默认不显示,需调用show显示
w.show();
//固定结尾,使页面停留在创建的窗口,让应用程序对象a进入消息循环
return a.exec();//让代码阻塞到该行
}
2.运行界面:
运行键在左下角
3.QT基本模块:
4.工程文件中的代码解释:
//不要随便在工程文件也就是.pro里面注释,QT里的代码并不等同于C++的代码
QT += core gui //QT包含的模块,core(核心模块)、gui(图形模块)
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets //4版本以上包含widget模块
CONFIG += c++11 //使用C++11的标准进行编译。
# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \ //工程中包含的源文件
main.cpp \
mywidget.cpp
HEADERS += \ //工程中包含的头文件
mywidget.h
# Default rules for deployment. //配置
//将 QNX 系统的安装路径 (= target.path) 设置为 /tmp/$${TARGET}/bin,其中 $${TARGET} 将替换为自己的的应用程序名称。
qnx: target.path = /tmp/$${TARGET}/bin
//安装路径设置为 /opt/$${TARGET}/bin 但仅适用于除 Android 之外的 UNIX 系统(即 unix:!android: 表达式)。
else: unix:!android: target.path = /opt/$${TARGET}/bin
//检查 target.path 是否不为空,如果是,则将您的目标(即您的应用程序或库)添加到安装列表中,以便在调用 make install 时安装它。
!isEmpty(target.path): INSTALLS += target
低版本可能包含:
TARGET = XXXX //生成目标exe的名称
TEMPLATE=app //模板,默认生成应用程序模板
如图:
如果修改该行中的名称,最后会生成一个新的exe文件,原来的exe文件不会被覆盖
5.头文件中的代码及解释
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QWidget> //包含头文件
class myWidget : public QWidget //类,继承
{
Q_OBJECT //宏,允许类中使用信号和槽的机制
public:
myWidget(QWidget *parent = nullptr); //构造有参函数
~myWidget(); //析构函数
};
#endif // MYWIDGET_H //防止头文件的重新包含
四、命名规范:
1.类名:
首字母大写,不同单词之间首字母大写
2.函数名或者变量名称:
首字母小写,不同单词间首字母大写
五、编译和运行
1.编译:
Ctrl+b //build
2.运行
Ctrl+r //run
自动对齐Ctrl+i