1.安装
Qt从5.15版本(2020 年 5 月)之后没有离线安装包,而是采用下载器的方式下载,国内的镜像网站也不提供之前的离线版本下载。下载器直接从官方服务器下载很慢,需要换源安装。
下载步骤:
1.下载online_installers,windos选最下面那个
https://mirrors.tuna.tsinghua.edu.cn/qt/official_releases/online_installers/
2.通过Power Shell启动下载器并更换源
qt-unified-windows-x64-4.5.0-online --mirror https://mirrors.tuna.tsinghua.edu.cn/qt
tips: 命令里的文件名根据自己的版本替换;
Win10 右键windos标志可打开power shell,cd 到安装包目录执行这条命令
3.安装参考其他博客,需要去Qt官网注册账号
2.常用快捷快捷键(截图大多来自B战《最新QT从入门到实战完整版|传智教育》视频)
3.Qt基础介绍
4.按钮QPushButton
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
{
setWindowTitle("明天吃什么");
setFixedSize(800, 600);
QPushButton * btn1 = new QPushButton;
btn1->setParent(this);//如果没有这句,按钮会生成在一个新的窗口
btn1->setText("五花肉");
btn1->move(50, 400);
QPushButton * btn2 = new QPushButton("蒸肉饼", this);
btn2->move(450, 400);
MyPushButton * mbtn = new MyPushButton;
mbtn->setParent(this);
mbtn->setText("我的按钮");
mbtn->move(300, 400);
}
5.对象树
1.QPushButton间接继承自QWidget,QWidget父类是QObject
2.调试打印的方法
#include<QDebug>
qDebug() << "MyPushButton 构造";
3.Qt是如何简化内存回收机制的?
用对象树,所有直接或间接继承QObject的类实例化的对象,通过setParent函数,可以将自身指针托管给对象树,在QObject对象析构时释放。(通常情况下,都挂在widget的children下,在关闭对话框时,将这些new出来的对象释放)
析构顺序:
class B: public QObject{}
class A: public B{}
那么在QObject析构时,检查到设置了children B,然后执行~B()函数中的内容,再去检查B有没有设置children。由于B 有children A, 此时先执行~A(), 再去检查A有没有children。。。因此,会看到~B()先于~A()执行,实际上B在A之后析构。
6.坐标系
7.信号和槽
槽就是信号处理函数。