Qt打开窗口关闭窗口按钮
QPushButton* btn3 = new QPushButton("open", this);
QWidget* next = new QWidget();
connect(btn3, &QPushButton::clicked, this, [=](){
if(btn3->text() == "open"){
btn3->setText("close");
emit next->show();
}
else{
btn3->setText("open");
emit next->close();
}
});
QpushBUtton
show()用以顶层方式弹出窗口
btn->setParent(*this);
对象树
交给父类中的表中,释放时释放
当创建的对象在堆区的时候,如果指定的父亲时object派生下来的类,可以不用管理释放惭怍,将对象放入对象树中
一定程度上简化了内存回收机制
坐标系
左上角0, 0点
信号和槽
人 ------摩擦-----》 神灯 ------》出灯神
按钮 -----点击-----》按钮---------》关闭窗口
connect(信号发送者, 信号, 信号接收者,信号的处理(槽函数));
信号槽的有点,松散耦合,信号发送端和接受端没有关联,通过coonect链接,将两端耦合在一起。
connect(btn, &QPushButton::clicked, this, &QWidget::close);
信号和槽
链接函数connect
自定义的信号量和槽
signals:
void hungry();
public slot:
void treat();
自定义信号
- 返回void
- 需要声明,不要实现
- 可以有参数,可以重载
自定义槽函数
- 返回void
- 需要声明,也要实现
- 可以有参数,可以重载
- 写道public slot 或者public 或者全局函数
注意
- 信号时可以连接信号
- 一个信号可以链接多个槽函数
- 多个信号可以链接同一个槽函数
- 信号和槽函数的参数必须一一对应
- 信号的参数个数可以多余槽函数参数个数
[]()->int mutable {}