命名规范及快捷键
#include "widget.h"
#include <QApplication>
//main程序入口 argc 命令行变量的数量 argv命令行变量的数组
int main(int argc, char *argv[])
{
//a 应用程序对象,在qt中,应用程序对象 有且仅有一个
QApplication a(argc, argv);
//窗口对象
Widget w;
w.show();
//让应用程序对象进入消息循环
//让代码阻塞到这行
return a.exec();
}
命名规范
类名 首字母大写,单词和单词之间首字母大写
函数名 变量名 首字母小写,单词和单词之间首字母大写
快捷键
ctrl+/
注释
ctrl+r
运行
ctrl+b
编译
ctrl+鼠标滚轮
字体缩放
ctrl+f
查找
ctrl+shift+↑或者↓
整行移动
F1
帮助文档
ctrl+i
自动对齐
F4
同名之间的.h和.cpp切换
按钮控件常用API
//创建一个按钮
QPushButton *btn = new QPushButton;
//btn->show(); //show以顶层方式弹出窗口控件
//让btn对象 依赖在widget窗口中
btn->setParent(this);
//显示文本
btn->setText("first button");
//创建第二个按钮
QPushButton *btn2 = new QPushButton("Second button", this);
//移动btn2按钮
btn2->move(300,100);
//重置窗口大小
resize(600, 400);
//设置固定窗口大小
setFixedSize(600, 400);
//设置窗口标题
setWindowTitle("first window");
对象树
当创建的对象在堆区的时候,如果指定的父亲是QObject派生下来的类或者QObject子类派生下来的类,可以不用管理释放操作,对象会被放入到对象树中。
一定程度上简化了内存回收机制。
信号和槽
信号槽的优点:松散耦合,信号发送端 和 接收端 本身是没有关联的,通过connect连接将两端耦合在一起
连接函数connect
参数
-
参数1 信号发送者
-
参数2 发送的信号(函数的地址)
-
参数3 信号接收者
-
参数4 处理的槽函数(函数的地址)
//需求 点击我的按钮 关闭窗口
//connect 参数1 信号发送者 参数2 信号(函数的地址) 参数3 信号接收者 参数4 处理的槽函数
connect(myBtn,&QPushButton::clicked, this, &QWidget::close);
松散耦合
自定义信号和槽
自定义信号
-
写到signals下
-
返回值 void
-
需要声明,不需要实现
-
可以有参数,可以重载
自定义槽函数
-
写到public slots下或者public或者全局函数
-
返回值 void
-
需要声明,也需要实现
-
可以有参数,可以重载
触发自定义信号
- emit自定义信号