首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

怎么让一个类只能实例化一次

2013-07-01 
怎样让一个类只能实例化一次比如一个对话框,怎样才能在需要弹出时检测是否已有该框弹出,如果有则只需把已

怎样让一个类只能实例化一次
比如一个对话框,怎样才能在需要弹出时检测是否已有该框弹出,如果有则只需把已经弹出的对话框显示到前台,谢谢!正在做毕业设计,急求!!!跪谢!!!
[解决办法]
每次弹出模态对话框  用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 标记一下。
[解决办法]
应该是单例模式
[解决办法]
用单例模型吧

热点排行