main.cpp
#include "study1.h"
#include <QApplication>
int main(int argc, char *argv[])//argc命令行参数个数 ;argv命令行参数
{
QApplication a(argc, argv);//管理Qt程序的运行,和设置Qt应用程序,针对QWidewt应用程序
// QGuiApplication a(argc, argv);//管理Qt程序的运行,和设置Qt应用程序,针对非QWidewt应用程序,如:QQuick
// QCoreApplication a(argc, argv);//管理Qt程序的运行,和设置Qt应用程序,针对无界面的应用程序
study1 w;//study1是我们自己定义的类;w是创建的对象
w.show();//w对象,调用了show()方法,以显示界面
return a.exec();//返回一个事件循环,QEventLoop::exec(),等待鼠标或者键盘的输入
}
study1.cpp
#include "study1.h"
#include "ui_study1.h"
#include <QDebug>
study1::study1(QWidget *parent)//定义了一个对象parent;
: QMainWindow(parent)//然后把parent作为Qmainwindow的参数初始化;初始化对象,写在:之后
//初始化自己的变量
,i(4)//i = 4//因为在study.h文件中i变量写在了ui对象之前,所以要先初始化
, ui(new Ui::study1)//ui = new UI::study1
{
ui->setupUi(this);
qDebug() << "构造函数执行了" << endl;
}
study1::~study1()
{
qDebug() << "析构函数执行了" << endl;
delete ui;
}
study1.h
#ifndef STUDY1_H
#define STUDY1_H
#include <QMainWindow>
#include <QtNetwork>
QT_BEGIN_NAMESPACE
namespace Ui { class study1; }
QT_END_NAMESPACE
class study1 : public QMainWindow//study1是我们自己定义的类,QMainWindow公有继承了study1
{
Q_OBJECT//大写的一般是宏定义; Q_OBJECT:使用Qt信号槽,要调用它
public:
study1(QWidget *parent = nullptr);//构造函数(摁着ctrl点击函数名,可以进去)
~study1();//析构函数
//声明自己的变量
int i;
private:
Ui::study1 *ui;//上面的study1不是同一个,因为使用了不同的命名空间
};
#endif // STUDY1_H
运行时,执行“构造函数”;
界面销毁时,执行“析构函数”
study1.ui //拖拽的窗体空件
总结:
1、在h文件中声明自己的变量
2、在相应的cpp文件中初始化自己的变量
3、然后在qDebug构造函数所在行中,添加自己的代码
快捷键:
ctr + a 全选
ctr + i 对齐
ctr + shift + ↑ 把该行向上移动1行
ctr + shift + ↓ 把该行向下移动1行
F4 头文件和源文件切换
ctr + ← 返回跳转前的页面
ctr + → 返回刚才的跳转
在头文件中声明了一个函数:自动生成函数体
右键,会自动生成函数体
Qt编程规范
1、文件命名最好是小写字母(qtcreater本身不区分大小写)
2、参考Qt源码:~/Qt5.12.9/5.12.9/Src
如:
3、发现类的首字母都是大写的,单词和单词之间,首字母是大写的
4、除了构造函数和析构函数,成员函数的手写字母都是小写,单词和单词的首写字母是大写的
5、参数与参数之间,建议加一个空格
6、判断语句{}的{与if本身在同一行;只有一行时候,可以不加{};