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执行完一个按钮程序后,关闭当前窗口如何写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)