Qt开发自学9_静态公共方法实现多窗体切换
202005302(1)3个*.ui文件布局:Label*1、PushButton*2(2)创建3个类:ComFirstForm、ComSecForm、ComThdForm(3)comfirstform.h文件中,添加头文件、静态变量和静态方法//是静态的,指针形式//静态:初始化静态头文件#include "firstform.h"#include "secform.h"#in...
·
202005302
(1)3个*.ui文件布局:Label*1、PushButton*2
(2)创建3个类:ComFirstForm、ComSecForm、ComThdForm
(3)comfirstform.h文件中,添加头文件、静态变量和静态方法
//是静态的,指针形式
//静态:初始化
| 静态 | |||
| 头文件 | #include "firstform.h" | #include "secform.h" | #include "thdform.h" |
| 成员 | static FirstForm *point1; | static SecForm *point2; | static ThdForm *point3; |
| 方法 | static void InitForm(); | static void InitForm(); | static void InitForm(); |
| FirstForm *ComFirstForm::point1 = NULL; | SecForm *ComSecForm::point2 = NULL; | ThdForm *ComThdForm::point3 = NULL; | |
| 实现 |
|
point2 = new SecForm(); | point3 = new ThdForm(); |
(4)comfirstform.cpp文件中
(4.1)初始化之前先赋值为NULL
(4.2)必须要指明作用域,这是静态成员的规则
(4.3)然后为其分配空间
(5)main.cpp中,第一个窗体的显示

所有窗体初始化,2个不显示出来。
遇到问题,如下所示:

原因:方法得是静态的
解决方法:void InitForm(); 前面要添加static
(6)firstform.cpp

(7)其他两个secform.cpp, thdform.cpp同理
完美实现三个窗体切换
备注:关于公共部分头文件,坚决不放入*.h文件中,应该放在*.cpp中,否则,只能引入一次
更多推荐


所有评论(0)