QT界面间跳转之法二 - 静态函数法2021-01-05 13:23:32

( 1人已投票,[高质量] )
分享:
31.3K

上一篇我们实现了信号槽绑定法实现了各页面之间自由跳转,本篇内容,旨在另静态函数法实现界面之间自由切换。

首先定义三个设计师界面(QMainWindow)oneForm\twoForm\threeForm,分别生成三对 .h .cpp .ui文件

只需要这三个界面,如果你的工程名字没起好,可能还有个mainwindow的默认界面,你可以删除或是当作oneForm使用

第一步,分别将三个界面进行规划,类似如下效果,并右键两个按钮分别跳到槽添加按纽点击响应。

QT界面间跳转之法二 - 静态函数法

第二步:添加静态变量

在oneForm.h中添加

public:
  static OneForm *p_oneForm;
  static void Init();

oneForm.cpp

OneForm *OneForm::p_oneForm = NULL;//静态变量需要再次声明
void OneForm::Init()
{
  p_oneForm = new OneForm();
}

同理,在twoForm 和 threeForm中也添加一样的代码,只是要把OneForm的类名改为页面对应的类名

第三步:修改main函数

//main.cpp
#include "oneform.h"
#include "twoform.h"
#include "threeform.h"
/************/
QApplication a(argc, argv);
OneForm::Init();
TwoForm::Init();
ThreeForm::Init();
OneForm::p_oneForm->show();

至此可以运行一下了,会显示第一个界在,按钮还没有功能

在main中Init过之后,其他地方无需再初始化了,除非以后他们被析构掉了。需要显示的地方真接show就好了

第四步:添加按钮功能

第一步就说了,设定好按钮后右键进入槽-添加按钮响应。

比如界面一的按钮OneForm

#include "oneform.h"
#include "twoform.h"
#include "threeform.h"
void OneForm::on_pushButton_clicked()
{//Jump to Two Form
  this->hide();
  TwoForm::p_twoForm->show();
}
void OneForm::on_pushButton_2_clicked()
{//Jump to Three Form
  this->hide();
  ThreeForm::p_threeForm->show();
}


这样界面一的跳转功能就实现了,同理界面二界面三,很简单,只需要隐藏与显示两句话(hide/show),记得包含头文件


至此三个界面间自由跳转的功能就实现了,实测有效





头像

snowcoal
  • QT
  • 静态函数
  • 页面跳转

收藏到我的私密空间

标题:QT界面间跳转之法二 - 静态函数法

作者:花花世界

你暂未登录,请登录后才可收藏至您的私密空间 确认取消
雪炭网

键盘操作 更便捷 -雪炭网雪中送炭-乐趣无限

如果本站的内容有幸帮助到了您,建议您了解一下当页的广告内容哦,我们的进步离不开您的支持,Thank you~