QT界面间跳转之法二 - 静态函数法2021-01-05 13:23:32
( 1人已投票,[高质量] )
上一篇我们实现了信号槽绑定法实现了各页面之间自由跳转,本篇内容,旨在另静态函数法实现界面之间自由切换。
首先定义三个设计师界面(QMainWindow)oneForm\twoForm\threeForm,分别生成三对 .h .cpp .ui文件
只需要这三个界面,如果你的工程名字没起好,可能还有个mainwindow的默认界面,你可以删除或是当作oneForm使用
第一步,分别将三个界面进行规划,类似如下效果,并右键两个按钮分别跳到槽添加按纽点击响应。
第二步:添加静态变量
在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),记得包含头文件
至此三个界面间自由跳转的功能就实现了,实测有效!
下一篇:没有了