qt中,按下关闭程序按钮这个事件用哪个函数判断?

qt中,按下关闭程序按钮这个事件用哪个函数判断?,第1张

void QWidget::closeEvent(QCloseEvent * event)及其相应子类的closeEvent().

当点击关闭按钮时,会调清轿用该函数,好春你要友正耐执行什么判断,就重新实现下该函数。

QT线程有3个函数可以关闭线程,态没尘分别是:

void quit ()

相当于exit(0)。

void exit ( int returnCode = 0 )

调用exit后,thread将退出event loop,并从exec返回,exec的返回值就是returnCode。

通常returnCode=0表示成功,其他值表示失败。

void terminate ()

结束线程,线察歼程是否立即终止取决于 *** 作系统。

线程被终止时,所有等待该线程Finished的线程都将被唤醒。

terminate是否调用取决于setTerminationEnabled ( bool enabled = true )开关。

其中quit与terminate是槽,可以直接用信号连接关闭线程,不过一般不建议使用terminate,还有想关闭线程,最好像下面例子帆禅;

直接调用stop接口就行了,线程就会关闭

class Thread : public QThread

{

Q_OBJECT

public:

Thread()

void setMessage(const QString &message)

void stop()

protected:

void run()

private:

QString messageStr

volatile bool stopped

}

Thread::Thread()

{

stopped = false

}

void Thread::run()

{

while (!stopped)

std::cerr <<qPrintable(messageStr)

stopped = false

std::cerr <<std::endl

}

void Thread::stop()

{

stopped = true

}

如果肢槐直接关闭软件(线程没有历搭友停止)则会有告警,那么可以在析构函数里加入 terminate()停止线程枝哗就可以

或者run(){..........;}执行完了就会自动退出;


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12351846.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存