怎么让一个类只能实例化一次
怎样让一个类只能实例化一次
比如一个对话框,怎样才能在需要弹出时检测是否已有该框弹出,如果有则只需把已经弹出的对话框显示到前台,谢谢!正在做毕业设计,急求!!!跪谢!!!
------解决方案--------------------
每次弹出模态对话框 用yourDlg->exec(); 不要用yourDlg->show();
------解决方案--------------------
单例模式,自己搜索
------解决方案--------------------
再需要跳出对话框的地方检查下是否已经有该窗口
,有则返回,没有就新建一个对话框,注意设置它的objectname
------解决方案--------------------
提供几个思路:
1、单例模式,继承对话框类自己写
2、也许可以试一下共享内存?(程序单一实例的例子那样)
话说,对话框不是阻塞进程的么?如果你这个对话框不是由消息队列弹出来的话,那么正常使用对话框是阻塞的,用户不点确定程序就不会往下走下去,自然也就不会继续弹出对话框了呀
------解决方案--------------------
自己定义一个flag 标记一下。
------解决方案--------------------
应该是单例模式
------解决方案--------------------
用单例模型吧
比如一个对话框,怎样才能在需要弹出时检测是否已有该框弹出,如果有则只需把已经弹出的对话框显示到前台,谢谢!正在做毕业设计,急求!!!跪谢!!!
------解决方案--------------------
每次弹出模态对话框 用yourDlg->exec(); 不要用yourDlg->show();
------解决方案--------------------
单例模式,自己搜索
------解决方案--------------------
再需要跳出对话框的地方检查下是否已经有该窗口
,有则返回,没有就新建一个对话框,注意设置它的objectname
QWidgetList qwl = QApplication::allWidgets();
int count = qwl.count();
for(int pos=0;pos<count;pos++)
{
if(qwl.at(pos)->objectName() == name) /* 已蹦出,无需重新创建 */
{
return;
}
}
------解决方案--------------------
提供几个思路:
1、单例模式,继承对话框类自己写
2、也许可以试一下共享内存?(程序单一实例的例子那样)
话说,对话框不是阻塞进程的么?如果你这个对话框不是由消息队列弹出来的话,那么正常使用对话框是阻塞的,用户不点确定程序就不会往下走下去,自然也就不会继续弹出对话框了呀
------解决方案--------------------
自己定义一个flag 标记一下。
------解决方案--------------------
应该是单例模式
------解决方案--------------------
用单例模型吧