Qt学习作业–(实现用按钮打开新窗口)
任务要求
创建一个窗口,窗口上设置一个按钮,实现点击这个按钮让它打开一个新窗口,再次点击这个按钮,让窗口关闭。
实现代码
#ifndef WIDGET_H
#define WIDGET_H
#include <QPushButton>
#include <QWidget>
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = 0);
~Widget();
private:
bool flag = false;
QWidget * W1 = new QWidget();
void openWidget();
};
#endif // WIDGET_H
#include "widget.h"
#include <QPushButton>
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
QPushButton *btn = new QPushButton("打开新窗口",this);
resize(200,200);
connect(btn,&QPushButton::clicked,this,[=](){
openWidget();
if(flag == true){
btn->setText("关闭新窗口");
}else {
btn->setText("打开新窗口");
}
});
}
void Widget::openWidget(){
if(flag == false){
W1->show();
flag = true;
}else {
W1->close();
flag = false;
}
}
Widget::~Widget()
{
}
思考一下怎么不用Lambda表达式实现?
参考代码