创建第一个Qt程序
C++面向对象以及泛式编程稍微学完皮毛之后,开始Qt开发学习,因为大四狗白天在实习,只能晚上学一点点皮毛QAQ,下面是Qt第一个程序学习笔记
————————————————————————————
头文件
这里很多代码就是C++中面向对象编程代码,C++学完之后Qt学起来也不是那么困难。在代码中我添加了自己的注释,白天乘机摸鱼写笔记:)
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
class MainWindow : public QMainWindow //创建mainwindow继承Qmainwindow
{
Q_OBJECT // 宏,允许类中使用信号和槽
public:
MainWindow(QWidget *parent = nullptr); //默认有参构造函数
~MainWindow(); //析构函数
};
#endif // MAINWINDOW_H 防止头文件重复包含 等价于#program once
————————————————————————————
主函数文件
#include "mainwindow.h"
#include <QApplication> //包含一个应用程序类的头文件
//main程序入口 argc命令行变量的数量 argv命令行变量的数组
int main(int argc, char *argv[])
{
//a应用程序对象,在QT中,应用程序对象有且仅有一个
QApplication a(argc, argv);
//窗口对象 基类为->Qwidght
MainWindow w;
//窗口对象 默认不会显示,必须调用show方法显示窗口
w.show();
//让应用程序对象进入消息循环
return a.exec();
}
————————————————————————————
窗口函数文件
#include "mainwindow.h"
#include <QPushButton> //添加button头文件
//命名规范
//类名 首字母大写,单词之间首字母大写
//函数名 变量名 首字母可小写,单词之前首字母大写
//快捷键
//注释 ctrl + /
//运行 ctrl + r
//编译 ctrl + b
//字体缩放 ctrl + 鼠标滚轮
//查找 ctrl + f
//整行移动 ctrl + shift + ↑ or ↓
//帮助文档 F1
//自动对齐 ctrl + i
//同名之间的.h和.cpp切换 F4
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
//创建一个按钮
QPushButton * btn = new QPushButton;
btn->show(); // show以顶层方式弹出窗口
//让btn对象依赖在my
btn->setParent(this);
//显示文本
btn->setText("第一个按钮");
//创建第二个按钮
QPushButton * btn2 = new QPushButton("第二个按钮",this); //C++中隐式转换
//移动btn按钮
btn->move(100,100);
//设置固定按钮大小
btn->resize(100,30); //前面为长
btn2->resize(100,30); //后面为宽
//重载窗口大小
resize(600,400);
//设置固定窗口大小
setFixedSize(600,400);
//设置窗口标题
setWindowTitle("第一个窗口");
//无需delete释放
}
MainWindow::~MainWindow()
{
}
// 这里new出的堆区空间无需delete释放:在创建Qobject对象时,可以提供一个父对象(注意这里的父对象并不是C++继承中的父类对象),我们创建的Qobject对象会自动添加到其父类对象的children()列表。当父对象析构时,这个列表中的对象也会被析构。
附带一张丑陋的运行结果:)