要求:在窗体中添加两个按钮:开启与关闭,点击开启后消失,只留下关闭按钮,反之亦然。
代码:
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
//设置大小
this->setFixedSize(500, 500);
//添加两个按钮
QPushButton *open = new QPushButton(this);
open->setText("开启");
QPushButton *close = new QPushButton(this);
close->setText("关闭");
close->move(300, 0);//向右移动300
//给两个添加
connect(open, &QPushButton::clicked, open,
[=](){
open->close();//点击后将open关闭
close->show();});
connect(close, &QPushButton::clicked, close,
[=](){
close->close();//点击后将open关闭
open->show();//将创建新的open
});
}
用lambda表达式:当点击了某个按钮后,将其close,然后令另一个show即可
只有一个按钮时
Open_close_button::Open_close_button(QWidget *parent) : QWidget(parent)
{
//实现一个框体,令其显示时有一个按钮为开启状态,点击后变为关闭,再点击变为开启
this->setFixedSize(400, 400);
QPushButton *p = new QPushButton(this);
p->setText("开启");
connect(p, &QPushButton::clicked, p, [=](){
if(p->text() == "开启"){//是开启则改为关闭
p->setText("关闭");
}
else{
p->setText("开启");
}
});
}
注:p->text()返回值是一个QString