第1次用QT调试程序的时候正常,为什么再调试的时候报下面的错误,是什么进程没关闭吗

第1次用QT调试程序的时候正常,为什么再调试的时候报下面的错误,是什么进程没关闭吗,第1张

1、最大的可能,程序没关闭,关闭它。2、或者没有完全关闭(只是界面关闭了,主体还在后台运行),直接ctrl+Alt +Delete 调出任务管理器,找到你的程序,点击结束程序就可以。3、实在不行,重启电脑。

主界面有两个按钮,点击“开始”按钮,触发一个信号,然后子线程打印一条信息,点击“结束”按钮,关闭线程

线程相关类定义如下

线程类变量定义如下

线程启动、信号槽及实现如下。在构造函数中通过threadstart()启动线程。

运行程序,并查看程序输出。点击一下“开始”按钮,会触发线程打印一条日志,再点击一下“开始”按钮,线程再次打印一条日志。点击“结束”按钮,打印线程结束。这时再点击“开始”按钮,线程将不再打印日志

修改线程打印函数为一个for循环,并在每次循环后sleep(5)秒

运行程序,然后点击“开始”按钮,线程开始打印日志。打印一两条后点击“结束”按钮,程序并没有停止打印日志,而是等到for循环结束后,才打印线程结束的日志。这说明线程并没有结束

修改线程结束函数如下,使用terminal函数。再次执行相同的步骤。

线程可以正常退出,但是程序关闭时崩溃。

修改线程打印函数,增加flag标识,在线程退出时,修改该flag标识,达到for循环退出的效果。这样线程可以正常退出,而且程序关闭时也不会崩溃

关闭主窗口还是什么。

1关闭主窗口并退出程序是

QApplication::exit()

2如果是QDialog,就

accept()

reject()

3对于所有QWidget:

close()

这些在Qt的文档里都能查到。

这种情况很正常,Python自身的线程并不安全且不与PyQt兼容,你既然用PyQt了,为什么不尝试用Qt自身的线程类QThread呢?那么基于Qt自身的特点,主线程关闭时,子线程就可以安全地退出了,而不会出现你现在这种情况了。

以上就是关于第1次用QT调试程序的时候正常,为什么再调试的时候报下面的错误,是什么进程没关闭吗全部的内容,包括:第1次用QT调试程序的时候正常,为什么再调试的时候报下面的错误,是什么进程没关闭吗、qt多线程调用函数问题、linux下qt执行完一个按钮程序后,关闭当前窗口如何写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/10143675.html

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

发表评论

登录后才能评论

评论列表(0条)

保存