使用Qt和C语言或者C++实现第二个窗口的显示与隐藏两种做法

322 阅读1分钟

 第一种做法:用两个按钮实现

第一步:在Qt中新建项目,项目名随意,我自己设置的是zuoye

 

 

第二步:右击Headers文件,新建一个类,类名随意

 

 第三步:在widget.h   、widget_2.h文件中使用C语言或者C++编写代码

 第四步:在widget_2.cpp 文件中编写代码

第五步:在widget.cpp 文件中编写代码

#include "widget.h"
// 引入第二个窗口
#include "widget_2.h"
#include <QPushButton>
#include <QDebug>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    // 创建open按钮
    QPushButton *open = new QPushButton("open",this);
    open->move(200,100);

    // 创建close按钮
    QPushButton *close = new QPushButton("close",this);
    close->move(200,200);

    // 创建第二个窗口对象
    Widget_2 *w_2 = new Widget_2;
    // 初始时窗口隐藏
    w_2->hide();

    // 信号和槽
    // 点击open,显示第二个窗口
    connect(open,&QPushButton::clicked,w_2,&Widget_2::show);
    // 点击close,隐藏第二个窗口
    connect(close,&QPushButton::clicked,w_2,&Widget_2::close);

    // 重置窗口大小
    resize(600,400);
    // 固定窗口大小
    setFixedSize(600,400);
    // 设置窗口标题
    setWindowTitle("第一个窗口");
}

Widget::~Widget()
{
}

 第六步:保存并运行

 

第二种做法:用一个按钮实现

其他文件保持不变,只需要修改widget.h文件和widget.cpp文件

修改widget.h文件:

 修改widget.cpp文件:

#include "widget.h"
// 引入第二个窗口
#include "widget_2.h"
#include <QPushButton>
#include <QDebug>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    // 创建open按钮
    QPushButton *open = new QPushButton("open",this);
    open->move(200,100);

    // 创建第二个窗口对象
    Widget_2 *w_2 = new Widget_2;
    // 初始时窗口隐藏
    w_2->hide();

    // 信号和槽
    // 点击open,显示第二个窗口,按钮内容变为close,再次点击关闭窗口
    connect(open,&QPushButton::clicked,w_2,[=](){
        if(flg == 0)
        {
            open->setText("close");
            w_2->show();
            flg= 1;
        }
        else
        {
            open->setText("open");
            w_2->hide();
            flg= 0;
        }
    });

    // 重置窗口大小
    resize(600,400);
    // 固定窗口大小
    setFixedSize(600,400);
    // 设置窗口标题
    setWindowTitle("第一个窗口");
}

Widget::~Widget()
{
}

\