使用QT写的C++程序,现在 类A 包含 类B 两个都是界面类 然后通过类A实例化类B 比如点一下按钮 B出来了 现在要做的是 如果B已经产生了 并且没关掉 再点类A的这个按钮 不要再实例化B了 直接显示出来B就行了 请问如何做到呢
问题已解决。
先将类B在类A中的对象指针在A的构造函数中置NULL,然后需要打开窗口B的时候判断该指针是否为null,如果为NULL,先new后show 否则 窗口B setWindowFlags(Qt::WindowStaysOnTopHint) 然后show
#或者,将你的窗口定为模态的,从根本上解决了,你点击完按钮,再点击的问题,因为你这个窗口你不关掉就点击不了按钮了
道理都是一样的,就如大侠所说,先创建一个空指针,在创建窗体的时候判断该指针是否为NULL,如果为NULL,
表示窗体未创建,则创建窗体;如果不为NULL,则表示已经创建窗体,则不再创建新窗体。
// class A;
// class B;
void A::onOpenB() {
if(!mB) { // 如果为空,则需要先创建该对象
mB = new B(this);
}
mB->setData(...);
mB->exec(); // 或者其他打开一个窗口的函数
}