• 14290阅读
  • 15回复

[提问]两个Qt程序相互之间如何通信,不依赖于特定平台 [复制链接]

上一主题 下一主题
离线luoyes
 

只看楼主 倒序阅读 楼主  发表于: 2011-07-21
比如建立两个工程,test1和test2,
我现在可以通过windowsAPI的方式取得test1和test2的主窗体,然后使用windows消息进行通信
但是我想使用一种不依赖与平台的方式,
不知道QApplication的postEvent是否能跨进程使用,
如果能又不知道如何在一个进程中获取另外一个进程的窗体的指针?
谢谢
离线uidab

只看该作者 1楼 发表于: 2011-07-21
qt 的demo里面有个IPC里面有个 Shared Memory很有意思,你可以看看!!
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线luoyes

只看该作者 2楼 发表于: 2011-07-21
SharedMemory我知道
可以用来共享数据
但是无法实现事件通知
离线roywillow

只看该作者 3楼 发表于: 2011-07-21
qt solutions中有一个QtSingleApplication,这个东西的实现用到了两个程序间的通信,或许可以参考一下
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线luoyes

只看该作者 4楼 发表于: 2011-07-21
多些关注,我去看看
离线luoyes

只看该作者 5楼 发表于: 2011-07-21
QtSingleApplication我大概看了一下,其中涉及进程间通信的部分其实是使用socket通信来实现的
这个方法肯定可行,但是是否有点大材小用了呢?
如果能有更简单的方法更好,实在不行那socket也是一个可选的方案
离线roywillow

只看该作者 6楼 发表于: 2011-07-21
你不妨直接搜搜singleApplication,我记得除了通过socket来实现,用sharedmemory记得也有实现的方法的
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线luoyes

只看该作者 7楼 发表于: 2011-07-21
数据共享使用sharedmemory非常容易解决
其实目前唯一需要解决的问题就是脱离平台的进程间消息传递

离线roywillow

只看该作者 8楼 发表于: 2011-07-21
唔……再配合信号与槽能传递消息么……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线luoyes

只看该作者 9楼 发表于: 2011-07-21
哎~
这是进程间啊,信号槽怎么连啊?
离线roywillow

只看该作者 10楼 发表于: 2011-07-21
如果只是两个qt程序之间的话
http://www.qtcentre.org/wiki/index.php?title=SingleApplication
或许这个里面的使用QTimer的方法可以参考一下……?

只是想到了这个,究竟具体怎么实现其实完全不清楚……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线XChinux

只看该作者 11楼 发表于: 2011-07-21
要支持哪几个平台?
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线luoyes

只看该作者 12楼 发表于: 2011-07-21
目前不确定支持的平台范围
公司的计划可能会涉及多平台,但其实目前为止仅仅针对windows
但是由于将来可能会涉及多个平台所以要求编程中尽量不使用对平台有依赖性的方法
离线guang0908090
只看该作者 13楼 发表于: 2011-07-26
快乐每一天
离线armin123
只看该作者 14楼 发表于: 2011-07-29
通知用sendmessage啊
风无常性 月无常圆
离线luoyes

只看该作者 15楼 发表于: 2011-08-12
引用第14楼armin123于2011-07-29 11:05发表的  :
通知用sendmessage啊

sendmessage是windowsAPI啊,需要与平台无关的方法,看来只能用LocalSocket了。
快速回复
限100 字节
 
上一个 下一个