QT5-界面跳转(2)

1.先创建Qwidget界面(不含ui),之后创建一个子界面subWidget(同样不含UI)
2.在QWidget中创建一个按钮,之后创建一个槽函数(实现主界面隐藏,子界面显示)
3.在subWidget中创建一个按钮,之后创建一个槽函数和一个信号(实现槽函数中emit信号)
4.在widget中通过信号把槽函数(widget再创建一个槽函数用来实现主界面隐藏,子界面显示)连接起来。

目录

代码部分如下:

widget.h:

widget.cpp:

subpage.cpp:

main.cpp:不做改变


代码部分如下:

widget.h:

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include "subpage.h"
class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = 0);
    ~Widget();

    subPage* two;

public slots:
    void quzi();

    void shixian();
};

#endif // WIDGET_H

widget.cpp:

#include "widget.h"
#include <QPushButton>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    two = new subPage;
    QPushButton* a = new QPushButton(this);
    this->setWindowTitle("这是主界面");
    a->setText("我想去子界面");
    a->move(100,100);
    QPushButton* b = new QPushButton(two);
    b->setText("我要回主界面");
    b->move(150,100);

    connect(a,&QPushButton::clicked,this,&Widget::quzi);
    connect(b,&QPushButton::clicked,two,&subPage::quzhu);//子界面的槽函数发送信号(信号只用声明)
    connect(two,&subPage::hh,this,&Widget::shixian);//信号和主界面链接起来

}

Widget::~Widget()
{

}
void Widget::quzi()
{
    this->hide();
    two->show();
}
void Widget::shixian()
{
    this->show();
    two->hide();
}

subpage.h:

#ifndef SUBPAGE_H
#define SUBPAGE_H

#include <QWidget>

class subPage : public QWidget
{
    Q_OBJECT
public:
    explicit subPage(QWidget *parent = nullptr);

signals:
    void hh();

public slots:
    void quzhu();
};

#endif // SUBPAGE_H

subpage.cpp:

#include "subpage.h"
#include <QPushButton>
#include "widget.h"
subPage::subPage(QWidget *parent) : QWidget(parent)
{
    this->setWindowTitle("这是子界面");


}
void subPage::quzhu()
{
    emit this->hh();
}

main.cpp:不做改变

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值