• 6596阅读
  • 12回复

如何禁止主窗体重复打开 [复制链接]

上一主题 下一主题
离线iiiyyyhhhsss
 

只看楼主 倒序阅读 楼主  发表于: 2009-09-18
在程序已经运行,主窗体已经出现的情况下,如何禁止“再次运行该程序而出现另一个相同主窗体”?
离线dbzhang800

只看该作者 1楼 发表于: 2009-09-18
搜索论坛,或者直接去看 qt solution
离线iiiyyyhhhsss

只看该作者 2楼 发表于: 2009-09-18
找不到类似的帖子啊,关键词可能不对,关键词如何写比较容易搜到?
离线jorneyr

只看该作者 3楼 发表于: 2009-09-19
离线iiiyyyhhhsss

只看该作者 4楼 发表于: 2009-09-19
找不到这个类啊。。。如图
离线iiiyyyhhhsss

只看该作者 5楼 发表于: 2009-09-19
明明查找到上面的类,为什么编译却报错说没有那个类呢?
离线robertkun

只看该作者 6楼 发表于: 2009-09-19
我是这样判断一个窗口是否已经打开的,在初始化之前加一个判断:
cgFindDialog* cgFindDialog::getInstance()
{
    if (!FindDialog)
    {
        FindDialog = new cgFindDialog();
    }
    FindDialog->show();
    return FindDialog;
}

但不是主窗口,不知道适不适用了~
                                              简单的生活使人快乐!
离线iiiyyyhhhsss

只看该作者 7楼 发表于: 2009-09-19
子对话框我也成功了,不过就是主窗体有点麻烦,好像要添加一个QtSingleApplication类的。。。
离线robertkun

只看该作者 8楼 发表于: 2009-09-19
噢 ,这个意思啊,我想想
                                              简单的生活使人快乐!
离线robertkun

只看该作者 9楼 发表于: 2009-09-19
        #include<Winbase.h>

    if(GetLastError() == ERROR_ALREADY_EXISTS)
    {
        QString _title = QObject::tr("Information");
        QString _Information = QObject::tr("System has been launch!");
        QMessageBox::information (NULL, _title, _Information);
        return 0;
    }
                                              简单的生活使人快乐!
离线iiiyyyhhhsss

只看该作者 10楼 发表于: 2009-09-19
winbase.h是什么类?qt好像没有这个类啊
离线iiiyyyhhhsss

只看该作者 11楼 发表于: 2009-09-19
http://wiki.qtcentre.org/index.php?title=SingleApplication
添加里面那个singleapplication类,Be aware to include the QtNetwork to your .pro-file.
[ 此帖被iiiyyyhhhsss在2009-09-19 18:21重新编辑 ]
离线hehui

只看该作者 12楼 发表于: 2009-09-22
网络通信或进程间通信~~~~~~~~~~~~~~~~
快速回复
限100 字节
 
上一个 下一个