社区
Qt
帖子详情
Qt中主进程退出时,如何关闭子进程
moxiaomomo
博客专家认证
2012-05-21 11:06:52
在主进程中开了一个子进程,用于网络连接。当主界面退出时,貌似子进程还在跑。
请问怎么捕捉父进程的退出事件(关闭主界面),来关闭子进程?
...全文
1671
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
写的一个多进程 通信的例子. 利用qprocess 启动多个外部进程,利用QSharedMemory共享内存 实现消息交换。如果跨机子就需要写socket了
QT
监测其他进程运行状态,包括运行还是未启动;监测对象(这个进程)是有界面的,可以判断此界面是否为当前用户正在使用的界面
QT
监测其他进程运行状态,包括运行还是未启动,或者是否置顶状态;监测对象(这个进程)是有界面的,可以判断此界面是否为当前用户正在使用的界面。用到CreateToolhelp32Snapshot;GetWindow;GetWindowThreadProcessId;Process32Next;OpenProcess;GetWindowThreadProcessId;GetWindowRect等函数。pWatcher->setExeName("BCompare.exe");是监测的进程名,不要加路径。
快速解决py
qt
5窗体
关闭
后子线程不同
时
退出
的问题
用py
qt
5设计了一个主窗体,在窗体运行
时
需要把一个无限循环放在一个线程去工作。运行后,发现通过鼠标按主窗体的
关闭
按键
关闭
主创体后,线程不会自动终止,依然在运行。尽管对我的使用场景来说,这不是问题,因为立马就关机了。但在调试阶段就恨繁,因为后台线程很占资源。怎么能让主窗体
关闭
是子线程也
退出
呢?百度了许久,很多方法都不行。 主要试过的有: 1、设置:self.thread.Daemon=True 2、在子线程设置一个变量,通过改变变量的值使循环不满足条件,自动结束 3、设置析构函数 还有别的奇葩。都不行。 今天发现,其实很简单。就是重构主窗体的closeEvent()函数。 def close
QT
通过QProcess调用外部可执行程序,并将其嵌入到主窗口
中
QT
通过QProcess调用外部可执行程序,并将其嵌入到主窗口
中
,代码完整,可执行运行
qt
程序
中
嵌入第三方exe外壳实例程序
嵌入程序以一个widget的形式加入,可以随窗口大小适应,嵌入程序
中
也实现了进程间通信形式,关于内部的第三方程序
中
的通信也是以相同的道理编写,这里没有包含,有疑问欢迎下方留言
Qt
16,817
社区成员
26,684
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章