1、窗口定为模态的,从根本上解决问题,但是无法操作另外窗口。若不关掉此窗口,则无法操作。
使用非模态窗口,可以解决此问题,但是非模态窗口可以重复出现窗口。
2、解决重复出现窗口问题:
先创建一个空指针,在创建窗体的时候判断该指针是否为NULL,如果为NULL,
表示窗体未创建,则创建窗体;如果不为NULL,则表示已经创建窗体,则不再创建新窗体。
用null作为判断的条件,会默认返回false
// class A;
// class B;
void A::openB() {
if(!mB) { // 如果为空,则需要先创建该对象
mB = new B(this);
}
mB->show(); // 或者其他打开一个窗口的函数
}
----------------------------------------------
分页的情况:
需要释放内存:
delete B;
B = nullptr;
保证下一页的窗体中的数据不与上一页的重复。