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

时间:2024-03-14 15:17:32

http://blog.csdn.net/apple8422/article/details/72861596


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


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

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

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


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

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



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


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


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

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


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

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


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

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

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

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

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

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

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


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

 

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

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


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

 

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

[cpp] view plain copy
  1. 下面给出clicked的函数实现代码  
  2. void login::on_btn1_clicked()  
  3. {  
  4.     this->hide();              //屏蔽登陆界面  
  5.     emit showmain();           //**信号,让信号传送到特定页面  
  6. }  


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


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

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

 

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

[cpp] view plain copy
  1. void MainWindow::receivelogin()  
  2. {  
  3.     this->show();  
  4. }  

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

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


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



以上就是讲解,实例源代码在下面,需要的可自行下载: