项目创建完成之后会出现如下界面:
之后对项目中的各个文件内容进行介绍
1 001.pro文件。一般项目中的.pro 文件是项目的项目文件
QT += core gui #Qt包含的模块
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets #大于4版本 包含widget模块
CONFIG += c++11
# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \ #包含源文件
main.cpp \
mybutton.cpp \
mywidget.cpp
HEADERS += \
mybutton.h \
mywidget.h
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
2、对项目中的main.cpp文件介绍,这是整个项目的开始位置
#include "mywidget.h"
#include <QApplication>//包含头文件 应用程序
//程序的入口 argc为命令行的数量 argv是命令行变量的数组
int main(int argc, char *argv[])
{
//应用程序对象 a,Qt中有且仅有一个应用程序对象
QApplication a(argc, argv);
//创建MyWidget对象 w, MyWidget基类是 QWidget
MyWidget w;
//窗口一般默认是不会弹出的,如果想要弹出就需要调用 show方法
w.show();
return a.exec();//a.exec()是进行消息循环机制,相当于pause
}
3、介绍项目中创建的时候,创建的一个继承于QWidget的mainWindow类
1).h文件
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QWidget>
class MyWidget : public QWidget //MyWidget继承QWidget类
{
Q_OBJECT //Q_OBJECT是Qt中的一个宏,写了这个宏就说明支持Qt中的信号和槽机制
public:
MyWidget(QWidget *parent = nullptr);//构造函数
~MyWidget();//析构函数
};
#endif // MYWIDGET_H
2).cpp文件
#include "mywidget.h"
#include "mybutton.h"
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)//初始化列表
{
}
MyWidget::~MyWidget()
{
}
注意:其他后面接收的类除了继承的父类不同,其他的结构和这个类一样。
介绍完基本的一些文件类容之后,下面以在界面创建一个按钮控件镜像进一步了解。此内容继以上文件继续书写。在mianWindow类中增加按钮函数。
#include "mywidget.h"
#include <QPushButton>
#include "mybutton.h"
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)//初始化列表
{
//创建一个按钮
//1)第一种方式
//按钮 使用的类为QPushButton
QPushButton *pushButton = new QPushButton;//创建一个按钮控件
pushButton->show();//show是用顶层方式的弹出,如果想在MyWidget窗口中显示,就需要依赖MyWidget窗口
//设置父亲
pushButton->setParent(this);//设置pushButton按钮的父窗口为当前widget
pushButton->setText(tr("赤水"));//设置按钮名称
//第二种方式
QPushButton *pushButton1 = new QPushButton(tr("南北将军"),this);//在定义的时候指定控件的父窗口和控件名称
//重置窗口大小
resize(600,400);
//移动第二个按钮
pushButton1->resize(50,50);
//重置窗口标题
setWindowTitle(tr("Qt第一个窗口"));
//重置窗口大小
setFixedSize(600,400);
//一定程度下 简化了内存回收机制
//创建自己的按钮
MyButton *myBtn = new MyButton;
myBtn->setText(tr("我的按钮"));
myBtn->move(200,200);
myBtn->setParent(this);
//Qt 坐标系
//x为右侧正向 y以下侧为正向
//点击myBtn关闭窗口
//使用connect函数 参数1 信号发送者 参数2 发送的信号(信号地址) 参数3 信号的接收者 参数4 处理的槽函数(函数地址)
connect(myBtn,&MyButton::clicked,this,&QWidget::close);
}
MyWidget::~MyWidget()
{
}
最后在介绍几个Qt中的一些快捷键
功能 | 快捷键 |
运行 | ctrl+R |
编译 | ctrl+B |
查找 | ctrl+F |
帮助文档 | F1 |
字体缩放 | ctrl+鼠标滚轮 |
自动对齐 | ctrl+i |
整行移动 | ctrl+shift+t 或者 i |
同名之间的.h和.cpp文件之间切换 | F4 |
注释快捷键 | ctrl+/ |