linux - 为什么 QProcess 不 kill,close,terminate 调用进程的析构函数?

标签 linux qt

我在从我的 C++ 程序执行的进程的解构函数中放置了一个看门狗停止函数。每次我使用该进程 QT GUI 上的“X”按钮关闭时,它将通过我放置在解构器中的代码运行。但是当我尝试执行 Qprocesskill/close/terminate 来终止我的 C++ 程序中的进程时,(进程的)解构器中的代码没有被执行。任何人都知道出了什么问题或有其他方法来关闭该过程?谢谢!!!

顺便说一句,我在 linux 上。

最佳答案

当带有这些函数的进程突然退出时,没有对象被拆除。它们等同于 C 函数 exit(1)。尝试通过调用 QApplication::quit () 优雅地退出 QApplication::exec 的事件循环,这将退出 exec 内的主事件循环并允许 main 正常退出并允许所有通常会在此时自行销毁的对象执行所以。

关于linux - 为什么 QProcess 不 kill,close,terminate 调用进程的析构函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13640239/

相关文章:

c++ - Makefile 查找 Windows 中所有 *.cpp 和 *.h 文件中断

linux - 适用于所有 Linux 发行版的程序包

qt - 优化QT中的画线

linux - 为 Linux 开发

c++ - 缓存谷歌地图以供离线使用

linux - 单机上的多个操作系统

linux - 使用字符串输入查找文件名的 Shell 脚本

linux - 在 Linux 内核模块的 ioctl 上获取 ENOTTY

python - QPushButton FocusIn 产生哪个信号?

c++ - 为什么可以从 QWidget 创建对象而无需将其包含在 C++ 程序的开头