(QT)QT跳转页面(信号-槽机制)

QT的界面跳转一般常用的也就是通过信号-槽机制去实现,那什么是信号-槽呢?按我自己的理解来说,就是好比如人(相当于信号)和游泳池(相当于槽)。当人觉得天气很热想去游泳了,就会去找游泳池游泳,换成专业点的说法就是当触发某个事件时,将触发信号传送到特定位置执行相关操作。


那么我将以登陆界面跳转主界面为例子:(登陆界面类名为login,主界面类名为mainwindow)

(1)      首先我们要创建项目

(QT)QT跳转页面(信号-槽机制)_第1张图片


这里需要注意是继承QMainWindow,作为以后的主界面

(QT)QT跳转页面(信号-槽机制)_第2张图片



(2)      之后再新增一个类,用于设计和实现登陆界面的功能。(右键——)新增新文件)


(QT)QT跳转页面(信号-槽机制)_第3张图片


之后选择Dialog without Buttons后点击下一步,修改类名点击确定即可完成新文件的添加。

(QT)QT跳转页面(信号-槽机制)_第4张图片


(3)      设计登陆界面,以下是我的设计界面(2lineEdit2Label和一个pushButton

(QT)QT跳转页面(信号-槽机制)_第5张图片


(4)      实现QT页面跳转功能

接下来将开始实现QT页面跳转功能,在(3)的页面中,右键pushbutton按钮,选择转为槽

(QT)QT跳转页面(信号-槽机制)_第6张图片

之后选择clicked()即可。页面也就会跳转到login.cpp让你写clicked()函数的实现代码了。

(QT)QT跳转页面(信号-槽机制)_第7张图片

回到login.h里面,可以看到多了以下一样东西

(QT)QT跳转页面(信号-槽机制)_第8张图片


Slots也就是槽的意思,作用我待会往下再说。

 

此时我要在此页面增加一个信号,用于将此信号传送给其他页面,以实现页面跳转功能。

(QT)QT跳转页面(信号-槽机制)_第9张图片


此函数不需要在CPP文件实现,因为它只作为信号进行传输到特定页面即可,俗话说就是制作人出来,让人去找游泳池。

 

下面给出clicked的函数实现代码

下面给出clicked的函数实现代码
void login::on_btn1_clicked()
{
    this->hide();              //屏蔽登陆界面
    emit showmain();           //激活信号,让信号传送到特定页面
}


(5)      回到mainwindow.h文件中,添加以下方框的代码。


(QT)QT跳转页面(信号-槽机制)_第10张图片

添加的是槽函数,也就是游泳池了,槽函数也是接受到与其相关相联系信号后执行相关操作的函数,也就是人(信号)只要到了游泳池(槽),也就会去游泳了。

 

其槽函数实现也很简单,就是让它显示即可。

void MainWindow::receivelogin()
{
    this->show();
}

(6)      最后还需要将信号与槽函数建立联系,在main.cpp文件中添加以下代码

(QT)QT跳转页面(信号-槽机制)_第11张图片


其实主要的是connect这个函数,是设置将哪个信号传送哪个页面,这也就实现了QT跳转页面的功能了。



以上就是讲解,实例源代码在下面,需要的可自行下载:
QT页面跳转源代码地址

你可能感兴趣的:(QT)