找回密码
 立即注册
收起左侧

qt 多进程

10
回复
9101
查看
[复制链接]
累计签到:3 天
连续签到:1 天
来源: 2017-12-12 17:29:35 显示全部楼层 |阅读模式
1Qter豆
在main函数里 希望创建的每一个widget 都是一个进程 这样 每一个widget就独享自己的UI线程了~~~不知道怎么chuang

回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2017-12-12 17:30:08 显示全部楼层
不知道怎么让每一个widget 是一个进程
回复

使用道具 举报

累计签到:436 天
连续签到:1 天
2017-12-12 19:50:02 显示全部楼层
有很多方法,但都不方便,估计不会有你想要的效果。
比如,使用QProcess启动额外的进程,然后考虑如何显示不同的widget,无脑一点可以对每一个widget单独写一份程序,也可以考虑用命令行参数来选择不同widget,又或者可以通过进程间通信来控制要显示的widget,顺便还可能解决不同进程里的widget的数据传输问题。
但无论哪种都非常繁琐,所以如果不是有非常的必要,还是尽量不要这么做。当然如果哪位能提出更简便的方法,还希望能够指教。
回复

使用道具 举报

尚未签到

2017-12-12 23:04:17 显示全部楼层
很遗憾。。你的想法不可能。。。。。。qt里面所有和界面有关的,都在主线程上。也只有和界面无关的才能分开线程执行
回复

使用道具 举报

累计签到:85 天
连续签到:1 天
2017-12-13 08:34:46 显示全部楼层
楼主想要做什么?
我以前写过一个程序,同样的小窗口会打开很多个,而且每个小窗口中都有费时动作会导致程序卡顿,当时也产生类似楼主的想法,后来的解决方法是,每个小窗口里面创建一个线程用来处理费时操作,每个小窗口的UI只负责和对应的线程互动,结果整个程序就流畅了
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2017-12-13 10:16:47 显示全部楼层
kenneth 发表于 2017-12-13 08:34
楼主想要做什么?
我以前写过一个程序,同样的小窗口会打开很多个,而且每个小窗口中都有费时动作会导致程 ...

这确实解决思路 但是我解决不了我的问题呀 我是要加载多个webview 同一瞬间 启动的 都只能在UI主线程里启动 所以加载出来的页面很慢
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2017-12-13 10:20:46 显示全部楼层
Joey_Chan 发表于 2017-12-12 23:04
很遗憾。。你的想法不可能。。。。。。qt里面所有和界面有关的,都在主线程上。也只有和界面无关的才能分开 ...

UI线程不是应该存在对应的主进程里嘛~要是我每一个widget都是独立的进程,那么他们的UI线程不久也是独立的嘛~就类似于开了多个exe这种的
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2017-12-13 10:22:15 显示全部楼层
miroox 发表于 2017-12-12 19:50
有很多方法,但都不方便,估计不会有你想要的效果。
比如,使用QProcess启动额外的进程,然后考虑如何显示 ...

我现在也是想着用QProcess 启动自己 循环的启动 设置个标志 防止无限自启动。但是他们之间的通信 不知道怎么传输
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2017-12-18 10:43:53 显示全部楼层
手动置顶一下。。。。。。
回复

使用道具 举报

累计签到:53 天
连续签到:1 天
2017-12-18 14:22:11 显示全部楼层
有多少个widget就写多少个exe程序吧,然后写一个管理程序,用来循环启动这个exe,或者监控这些exe是否都启动了,有挂掉的自动启动, 至于窗体通信,可以使用共享内存来实现,毕竟exe太多QProcess的管道通信设计就会比较复杂!
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2017-12-27 20:36:02 显示全部楼层
angelus 发表于 2017-12-18 14:22
有多少个widget就写多少个exe程序吧,然后写一个管理程序,用来循环启动这个exe,或者监控这些exe是否都启动了 ...

嗯 我现在就是这样写的~~~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了