QT使用同一按钮实现【打开/关闭】新窗口,实现方案如下:
- 使用一个全局状态变量记录窗口打开状态
- 通过该状态实现新窗口的
show
和close
实现代码如下:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "form.h"
#include <QDebug>
static bool newWinFlag = false;
Form *configWindow = NULL;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
qDebug() << newWinFlag;
newWinFlag = !newWinFlag;
if(newWinFlag == true)
{
configWindow = new Form;
configWindow->show();
return;
}
else
{
configWindow->close();
return;
}
}
参考链接:
- https://blog.csdn.net/shenlaoli/article/details/128681032