按钮控制窗口开关:
window.h
#ifndef WINDOWS_H
#define WINDOWS_H
#include <QWidget>
class windows:public QWidget
{
public:
windows();
QWidget *win = new QWidget();
public slots:
void windowShow();
void windowClose();
};
#endif // WINDOWS_H
window.cpp
#include "windows.h"
windows::windows()
{
}
void windows::windowShow(){
win->show();
}
void windows::windowClose(){
win->close();
}
mywidget.h
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include "windows.h"
#include <QWidget>
QT_BEGIN_NAMESPACE
namespace Ui { class myWidget; }
QT_END_NAMESPACE
class myWidget : public QWidget
{
Q_OBJECT
public:
myWidget(QWidget *parent = nullptr);
~myWidget();
private:
windows * w;
Ui::myWidget *ui;
};
#endif // MYWIDGET_H
mywidget.cpp
#include "mywidget.h"
#include "ui_mywidget.h"
#include "windows.h"
#include<QPushButton>
myWidget::myWidget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::myWidget)
{
ui->setupUi(this);
this->w = new windows(); //创建窗口对象
//两个按键控制窗口开关
// QPushButton* btn = new QPushButton("open",this);
// btn->setParent(this);
// btn->move(300,300);
// QPushButton* btn2 = new QPushButton("close",this);
// btn2->setParent(this);
// btn2->move(300,500);
// connect(btn,&QPushButton::clicked,this,[=](){
// w->windowShow();
// });
// connect(btn2,&QPushButton::clicked,this,[=](){
// w->windowClose();
// });
//一个按键控制窗口开关
QPushButton* btn = new QPushButton("open",this);
btn->setParent(this);
btn->move(300,300);
connect(btn,&QPushButton::clicked,this,[=](){
if(btn->text() == "open"){
w->windowShow();
btn->setText("close");
} else if(btn->text() == "close"){
w->windowClose();
btn->setText("open");
}
});
}
myWidget::~myWidget()
{
delete ui;
}
learned from:传智教育