两个独立的窗口

目前我接触到的基本都是在一个页面上进行操作的,这样好象有点单调,所以就弄出了个可以将两个页面互相切换的窗口啦。

我们先像平常一眼,先弄个页面出来,并且定义一个按钮,再新建一个cpp文件,做为子窗口 ,如下所示。
在这里插入图片描述
在子页面也要定义一个按钮,用于切回到主页面,再写个方法,还要在头文件些一个信号
void sendSolt();
signals:
/* 信号必须有signals关键字来声明
* 信后没有返回值,但可以有参数
* 信号就是函数的声明,只需声明,,无需定义
* 使用:关键字 emit mySignal();
* 信号可以重载
*/
void mySignal();
然后去构造函数中实现,还有一个方法。

SubWidget::SubWidget(QWidget *parent) :    QWidget(parent)
{
    resize(400,400);
    this->setWindowTitle("小弟");//标题
    b.setParent(this);
    b.setText(tr("切换主窗口"));
    connect(&b,&QPushButton::clicked,this,&SubWidget::sendSolt);
}
void SubWidget::sendSolt()
{
    emit mySignal();
}

在主页面实现:

MainWidget::MainWidget(QWidget *parent)
    : QWidget(parent)
{
    resize(400,400);
    this->setWindowTitle("Boss");
    b2.setParent(this);
    b2.setText("切换子窗口");
    connect(&b2,&QPushButton::released,this,&MainWidget::Change);//这个呢就是在主页面点击按钮,主页面隐藏,子页面显示
connect(&subwin,static_cast<void (SubWidget::*)()>
(&SubWidget::mySignal),this,&MainWidget::dealsub);// 这个呢就是在子页面点击按钮,子页面隐藏,主页面显示
}
void MainWidget::Change()
{
    subwin.show();
    this->hide();
}
void MainWidget::dealsub()
{
    subwin.hide();
    this->show();
}

这样就可以实现在两个不同页面来回切换啦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值