Qt中主页面跳转下一页面&下一页面跳回主页面相关操作

本文介绍了如何在Qt环境中通过信号槽机制实现在主副窗口之间进行页面切换。主窗口中设置一个按钮,点击后隐藏主窗口显示副窗口;副窗口同样设置一个按钮,点击时发出back信号,主窗口监听该信号并响应,隐藏副窗口重新显示自己。这种方法确保了从副页面返回主页面的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      目标:实现主副窗口之间通过Button按钮进行切换  ,利用connect链接信号槽实现主页面到副页面的切换。相反由副页面不能直接切回主界面,同样的方法不在使用,Qt中,副页面想要返回主页面,需要在点击按钮的时刻,发送一个back()的信号,主界面监听到信号后利用connect返回。

        1.在Qt中创建Widget主窗口,并设置窗口大小以及窗口标题,在头文件中维护一个副窗口的指针。代码如下:

        widget.h文件中维护下一页面指针(没有直接实现创建)

#ifndef WIDGET_H
#define WIDGET_H
#include"youpage.h"

#include <QWidget>

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();
    //维护下一页面的指针
    youpage *pg;

private:
    Ui::Widget *ui;
};

#endif // WIDGET_H

        widget.cpp中设置窗口的属性等

创建副页面youpage,.h文件中设置返回信号,用于主界面监听,.cpp文件也是和主界面相同的属性等

。然后通过两个界面的按钮实现切换。

.h

#ifndef YOUPAGE_H
#define YOUPAGE_H

#include <QWidget>

class youpage : public QWidget
{
    Q_OBJECT
public:
    explicit youpage(QWidget *parent = 0);

signals:
    void back();

public slots:


};

#endif // YOUPAGE_H

.cpp

#include "youpage.h"
#include<QPushButton>

youpage::youpage(QWidget *parent) :
    QWidget(parent)
{
    this->setFixedSize(320,588);
    this->setWindowTitle("副页面");
    QPushButton *bt =new QPushButton("返回主界面",this);
    bt->move(120,270);

    connect(bt,&QPushButton::clicked,[=](){
       emit this->back();
    });

}

主界面监听:

#include<QPushButton>
#include"youpage.h"

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    QPushButton *button=new QPushButton("进入副界面",this);
    button->setParent(this);
    button->move(120,270);
    this->setWindowTitle("主界面");
    //设置窗口固定大小
     this->setFixedSize(320,588);
    
    //新页面
    pg=new youpage;
    connect(button,&QPushButton::clicked,[=](){
        this->hide();
        pg->show();
    });
    //监听副页面发出的信号
    connect(pg,&youpage::back,[=](){
      pg->hide();
      this->show();
    });

最终结果如下:

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值