程序思路:我们需要将这个过程写进一个函数,然后通过点击的信号与这个函数连接,就能实现通过点击一个按钮实现另一个窗口的的打开和关闭(类似于循环),首先我们要有一个判断窗口是否打开的判断标志,然后就可以根据这个标志对窗口进行打开和关闭。

//头文件:Date9_19_work
#pragma once

#if _MSC_VER >= 1600

#pragma execution_character_set("utf-8")        // 该指令仅支持VS环境

#endif


#include <QtWidgets/QMainWindow>

#include "ui_Date9_19_work.h"

#include<QPushButton>


class Date9_19_work : public QMainWindow

{

    Q_OBJECT


public:

    Date9_19_work(QWidget *parent = nullptr);

    ~Date9_19_work();

    void creatWidget();

private:

    Ui::Date9_19_workClass ui;

private:

    QPushButton* btn;

    bool isOpen;

    QMainWindow* myw;

};
//实现文件.cpp
#include "Date9_19_work.h"


Date9_19_work::Date9_19_work(QWidget* parent) : QMainWindow(parent),isOpen(false)

{

    ui.setupUi(this);

    this->setFixedSize(800, 640);

    this->setWindowTitle("作业练习");

    btn = new QPushButton("打开", this);

    this->myw = new QMainWindow(this);

    btn->resize(120, 60);

    btn->move(340, 290);

    connect(btn, &QPushButton::clicked, this, &Date9_19_work::creatWidget);

}


void Date9_19_work::creatWidget()

{

    
    if (!this->isOpen) {

        myw->setWindowTitle("点击打开的窗口");

        myw->setFixedSize(800, 640);

            myw->show();

            this->isOpen = true;

            btn->setText("关闭");

    }

    else {

        myw->setWindowTitle("点击打开的窗口");

        myw->setFixedSize(800, 640);

            myw->close();

            this->isOpen = false;

            btn->setText("打开");

    }

}


Date9_19_work::~Date9_19_work() {}