5-20打卡:qt实现开启关闭窗口

我想要实现:按下新建窗口,然后新建出一个窗口,这时按钮变成关闭窗口,然后我再点击关闭窗口按钮、那么新建的窗口关闭。

// 在Widget类里面声明一个QWidget的指针成员变量
QWidget *w;

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    QPushButton *closewindow=new QPushButton;
    closewindow->setParent(this);
    closewindow->setText("开启窗口");
    closewindow->move(150,0);
    connect(closewindow,&QPushButton::clicked,this,[=](){
        // 判断按钮的文本属性
        if(closewindow->text()=="关闭窗口"){
            // 关闭并删除新建窗口
            w->close();
            delete w;
            // 恢复按钮的文本为开启窗口
            closewindow->setText("开启窗口");
        } else {
            // 创建一个新的窗口
            w=new QWidget;
            w->show();
            w->resize(300,200);
            w->setWindowTitle("新窗口");
            w->move(1000,500);
            // 修改按钮的文本为关闭窗口
            closewindow->setText("关闭窗口");
        }
    });
}

posted @ 2023-05-21 16:16  aallofitisst  阅读(154)  评论(0)    收藏  举报