社区
Qt
帖子详情
Qt中主进程退出时,如何关闭子进程
moxiaomomo
博客专家认证
2012-05-21 11:06:52
在主进程中开了一个子进程,用于网络连接。当主界面退出时,貌似子进程还在跑。
请问怎么捕捉父进程的退出事件(关闭主界面),来关闭子进程?
...全文
1670
8
打赏
收藏
Qt中主进程退出时,如何关闭子进程
在主进程中开了一个子进程,用于网络连接。当主界面退出时,貌似子进程还在跑。 请问怎么捕捉父进程的退出事件(关闭主界面),来关闭子进程?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
caozuoshibai
2015-01-12
打赏
举报
回复
void MainWindow::closeEvent(QCloseEvent *e) { QApplication::exit(0); }
moxiaomomo
2012-05-21
打赏
举报
回复
解决了。在MainWindow中继承并实现了closeEvent()的事件方法,在该函数中向进程本身发送一个SIGINT的信号,同时在main中捕捉SIGINT信号,然后kill子进程便可以了。
moxiaomomo
2012-05-21
打赏
举报
回复
[Quote=引用 3 楼 的回复:]
创建子线程,保存其ID
直接closeEvent里面kill
[/Quote]
还要创建多一个线程啊?
moxiaomomo
2012-05-21
打赏
举报
回复
[Quote=引用 4 楼 的回复:]
用信号不是更好吗,可以通知子线程该结束了,释放资源。
直接kill不是很好吧。
[/Quote]
那就在捕捉到信号后,把资源给释放掉了,然后再对这个信号accept就可以了吧
moxiaomomo
2012-05-21
打赏
举报
回复
[Quote=引用 2 楼 的回复:]
是不是意味要结贴了。。直接closeEvent里面kill不可以吗。
[/Quote]
是可以的,但要把pid给传过来,然后再kill
jdwx
2012-05-21
打赏
举报
回复
用信号不是更好吗,可以通知子线程该结束了,释放资源。
直接kill不是很好吧。
tubo_true
2012-05-21
打赏
举报
回复
创建子线程,保存其ID
直接closeEvent里面kill
xiebin133
2012-05-21
打赏
举报
回复
是不是意味要结贴了。。直接closeEvent里面kill不可以吗。
QT
多进程通信
QT
框架
中
的多进程通信是开发复杂应用程序
时
的关键技术,它允许不同进程之间交换数据和执行协同操作。在本示例
中
,"
QT
多进程通信"着重展示了如何使用QProcess和QSharedMemory来实现进程间的通信。 QProcess是
QT
库
中
...
QT
监测其他进程运行状态,包括运行还是未启动;监测对象(这个进程)是有界面的,可以判断此界面是否为当前用户正在使用的界面
QT
监测其他进程运行状态,包括运行还是未启动,或者是否置顶状态;监测对象(这个进程)是有界面的,可以判断此界面是否为当前用户正在使用的界面。用到CreateToolhelp32Snapshot;GetWindow;...
快速解决py
qt
5窗体
关闭
后子线程不同
时
退出
的问题
怎么能让主窗体
关闭
是子线程也
退出
呢?百度了许久,很多方法都不行。 主要试过的有: 1、设置:self.thread.Daemon=True 2、在子线程设置一个变量,通过改变变量的值使循环不满足条件,自动结束 3、设置析构函数 ...
QT
通过QProcess调用外部可执行程序,并将其嵌入到主窗口
中
最后,确保在程序
关闭
时
正确地终止QProcess,可以使用`terminate()`或`kill()`方法,但最好先尝试发送一个
退出
请求(`closeWriteChannel()`和`terminate()`)并等待一段
时
间,如果进程仍未结束再使用`kill()`强制...
qt
程序
中
嵌入第三方exe外壳实例程序
6. 为了使嵌入的程序能随窗口大小适应,需要在
Qt
主窗口的resizeEvent()或调整大小相关的信号
中
更新EmbeddedExeWidget的大小。 7. 最后,确保在
退出
应用程序
时
正确
关闭
命名管道和QProcess,防止资源泄漏。 通过以上...
Qt
16,817
社区成员
26,684
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章