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