精华内容
下载资源
问答
  • QT在构造函数退出程序

    千次阅读 2013-07-02 17:27:16
    QT,构造函数退出整个界面程序


    在QT的界面类的构造过程中,如果想退出整个程序,暴力的做法是调用exit(-1)进行,另外一种不是那么暴力的方式如下:


    dialog.h

    #ifndef DIGLAOG_H_
    #define DIGLAOG_H_

    #include <QDialog>

    class dialog : public QDialog
    {
    public:
        dialog (QWidget *parent = 0);
        virtual ~dialog ();

    private:
    };

    #endif


    dialog.cpp

    #include "dialog.h"
    #include <QTimer>
    #include <QApplication>

    dialog::dialog(QWidget *parent)
        :QDialog(parent)
    {
        qDebug("dialog::dialog()");
        QTimer::singleShot(0, qApp, SLOT(quit()));
    }

    dialog::~dialog()
    {
        qDebug("dialog::~dialog()");
    }


    main.cpp

    #include <QApplication>
    #include "dialog.h"

    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);

        dialog d;
        return d.exec();
    }


    采用的方式是:

    QTimer::singleShot(0, qApp, SLOT(quit()));

    运行结果:

    dialog::dialog()
    dialog::~dialog()

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    展开全文
  • Qt退出应用槽函数

    2021-05-17 14:44:57
    关闭应用程序 第一种: 类关系:QObject->QCoreApplication->QGuiApplication->QApplication 函数原型: static void quit(); 头文件:“qcoreapplication.h” 使用方法: QApplication::quit(); 或者 ...

    关闭应用程序

    第一种:

    类关系:QObject->QCoreApplication->QGuiApplication->QApplication
    函数原型:

    static void quit();
    

    头文件:“qcoreapplication.h”

    使用方法:

    QApplication::quit();
    

    或者

    QApplication *app;
    app->quit();
    

    第二种:

    函数原型:

    static void exit(int retcode=0);
    

    头文件:“qcoreapplication.h”

    使用方法:

    QApplication::exit(0);
    

    或者

    QApplication *app;
    app->exit(0);
    

    关闭当前窗口

    函数原型:

    bool close();
    

    头文件:qwidget.h

    使用方法:

    this->close();
    

    举例:

    MainWindow中添加ACTION,通过ACTION槽函数验证关闭窗口。

    void MainWindow::on_actQuit_triggered()
    {
        //QApplication::quit();
        //QApplication::exit(0);
        if (!(QMessageBox::information(this,("标题"),("是否退出?"),("是"),("否"))))
        {
            this->close();
        }
    }
    
    

    在这里插入图片描述
    通过提示框,点击是则退出当前窗口,否则仍留在当前窗口。

    展开全文
  • Qt中写程序时,要到main函数中调用一个函数,或者一个线程退出时,整个进程却没有退出的情形: int foo() { return 0; } void* myPhread(void*) { //do sth. pthread_exit(0); } int main(int argc,char* ...

    Qt中写程序时,要到main函数中调用一个函数,或者一个线程退出时,整个进程却没有退出的情形:

    int foo()
    {
        return 0;
    }
    
    void* myPhread(void*)
    {
        //do sth.
        pthread_exit(0);
    }
    
    int main(int argc,char* argv[])
    {
        QApplication a(argc,argv);
        
        foo();
       
        // pthread_t tid;
        //pthread_create(&tid,NULL,myPthread,NULL);
    
    
        return a.exec();
    }

    上述程序中,无论是调用函数foo 的return; 还是线程 myPthread的 pthread_exit 后,整个进程依然没有退出,

    问题原因:Qt中 a.exec()一直处于事件循环中,是不会退出程序的,所以, 需要在 程序中添加 退出进程函数exit(0);

    int foo()
    {
        return 0;
    }
    
    void* myPhread(void*)
    {
        //do sth.
        pthread_exit(0);
    }
    
    int main(int argc,char* argv[])
    {
        QApplication a(argc,argv);
        
        foo();
       
        // pthread_t tid;
        //pthread_create(&tid,NULL,myPthread,NULL);
    
        exit(0);//添加退出进程函数
    
        //return a.exec();
    }

    错误原因:以为线程退出或者函数返回,主进程就会退出,潜意识认为是main函数是 return 0;

    但Qt 函数的特殊之后,就在函数一直处于事件循环中,而不退出程序。 

    展开全文
  • Qt 控制台程序正常退出

    千次阅读 2019-05-08 16:29:54
    废话不多说,最近想写一个控制台程序,希望在执行完正常的代码后自动退出程序,研究了很久很久,看了很多办法,都不得行,最后可行的办法...3、调用程序自带的 exit() 退出程序函数; 3、调用程序自带的 quit() 退出...

    废话不多说,最近想写一个控制台程序,希望在执行完正常的代码后自动退出程序,研究了很久很久,看了很多办法,都不得行,最后可行的办法记录于此,避免以后再次入坑。

    首先,Qt 程序正常退出的方式有如下几种:
    1、手动点击关闭按钮;(不适用于自动关闭程序)
    2、通过系统pid杀死程序;(这个怕是给自己挖坑啊)
    3、调用程序自带的 exit() 退出程序函数;
    3、调用程序自带的 quit() 退出程序函数;

    我的代码是这样的:

    	#include <QApplication >
    	#include <runtime.h>
    	int main(int argc, char *argv[])
    	{
    	     QApplication a(argc, argv);
    	    // [0] 处理逻辑更新代码
    	    RunTime runtime;
    	    return a.exec();
    	}
    

    其中 RunTime 为我自己继承与 QObject 的子类,所有的逻辑代码都在里面。

    在 RunTime 里面,我直接调用 qApp->exit(0) qApp->quit() 都无法退出程序,收到强制关闭,程序退出代码一串负数,弄了半天,最后可以解决的办法就是加一个定时器

    RunTime 中定义一个 QTimer ,然后连接定时器的超时函数,在超时函数里面写 qApp->exit(0) ,然后启动定时器,时间尽量为1秒,然后程序就正常自动退出了。

    巨坑啊 必须要用定时器才可以,巨尴尬。

    展开全文
  • 方法: QTimer::singleShot(0,qApp,SLOT(quit())); 此方法经常用于登陆窗口返回取消时,因为登陆窗口一般是在主窗口构造函数中调用的,关闭登陆窗口后,也要退出程序
  • 在一次编写Qt程序时,我需要在窗口的构造函数中进行条件的判断,当符合条件时,继续运行,不符合时便退出程序,不让窗口显示。 我最初采用的是this->hide()/this->close(),但是我发现在构造函数中调用这两个...
  • Qt5 完全退出程序

    万次阅读 2018-01-09 15:09:03
    Qt程序我们常用的是使用 this->close(); 来关闭窗口,此时的程序并没有完全退出。我的理解是 main 函数中的 a.exec();...若要完全退出程序,需要调用: qApp->quit(); 或者: qApp->exit(0);
  • qt退出应用程序(exe)的方法

    万次阅读 2017-11-16 11:31:53
    首先退出应用程序(exe)的方法 方法1: QApplication* app; app->exit(0); 方法2: QApplication* app; ... 可以将以上方法加入到关闭程序的槽函数中 为了增加应用程序的人性化,在退出
  • 许多人创建qt控制台程序会遇到这种情况,关闭...1.通过QTextStream监听用户输入, 当用户有输入则退出程序. QCoreApplication a MyClass c; QString str; QTextStream in(stdin);//获取数据 in>>str; QTim
  • 项目中当关闭主窗口时,需要将同时打开的其他窗口关闭,并退出应用程序,实现方法如下: 在main函数中将QApplication::lastWindowClosed()信号和QApplication::quit()槽函数相关联,将主窗口的属性设置为QWidget:...
  • 项目中当关闭主窗口时,需要将同时打开的其他窗口关闭,并退出应用程序,实现方法如下: 在main函数中将QApplication::lastWindowClosed()信号和QApplication::quit()槽函数相关联,将主窗口的属性设置为QWidget:.....
  • QT程序退出后托盘图标不消失问题

    千次阅读 2015-07-27 11:30:30
    我觉得,这是因为这个对象是在堆上分配的,程序退出的时候­没有使用delete对内存进行释放,也就是说没有调用它的析构函数,所以程序虽然结束了,但是托盘里仍然会有那个图标。 后来我用在栈上创建对象代替了在堆上...
  • 我在关闭运行的qt程序时出现:程序异常结束。 <p>debug后提示:从底层发来一个信号,分段错误(似乎有野指针什么的都会出现这个错)。 光标指向了某个.cpp文件的析构函数,就...
  • QT中关闭应用程序和窗口的函数

    千次阅读 2013-08-16 16:14:55
    QT中关闭应用程序和窗口的函数 使用QT编辑界面,其中带来很大方便的一点就是Qt中自带丰富的、种类齐全的类及其功能函数,程序员可以在编辑程序的过程中简单地直接调用。关于窗口关闭的操作,在这里指出常用的...
  • Qt操作:鼠标事件(鼠标事件坐标)+程序退出前弹出确认退出对话框(QMessageBox的使用)程序功能鼠标...附加功能:用户选择ROI后在未保存灰度图的情况下点击退出程序,需对用户进行提醒是否保存当前选中的ROI 鼠标事...
  • QT编写的程序,怎样在申请资源失败后,关闭所有窗口,退出程序? 我写的一个QT窗口,以一个对话框为主窗口,在对话框的初始化函数(对话框类的构造函数)中回申请一些资源,现在我想在申请失败后关闭所以窗口,...
  • QT程序自动重启

    2020-10-13 14:06:59
    要想理解重启,先得看看Qt程序怎么退出! 1、退出 ...而要退出程序,就是要退出这个事件循环,使main函数返回。 如何退出? 正确方式: QCoreApplication::exit(int); 它还有一个马甲 QCoreApplic

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 191
精华内容 76
关键字:

qt退出程序函数