进程间采用信号槽通信

weijunzia 发布于 2014/07/07 16:56
阅读 360
收藏 1
Qt
我知道信号槽可以用在对象之间,但不知道是否可以用在进程之间,或者说,用在不同进程中的对象之间,刚刚上手QT,请大神指教!
加载中
1
dosmlp
dosmlp
不同进程之间肯定不行啊
0
杨同学
杨同学

不行

http://qt-project.org/doc/qt-5/ipc.html

0
一如当初
一如当初
看看QWebSocket。
0
渡世白玉
渡世白玉

进程?

线程可以,因为他们是共享的资源,线程是不可以的、、、

线程是独立的资源的、、这个建议还是了解下操作系统的原理吧、、

去看下QLocalServer和QLocalSocket吧、、、

0
blu10ph
blu10ph
Socket最靠谱~
0
powerwheel
powerwheel

Qt DBUS可以的:
The Qt D-Bus module is a Unix-only library you can use to implement IPC using the D-Bus protocol. It extends Qt'sSignals and Slots mechanism to the IPC level, allowing a signal emitted by one process to be connected to a slot in another process. The Qt D-Bus documentation has detailed information on how to use the Qt D-Bus module.

Qt bin目录下有对应的qdusxml2cpp qdbuscpp2xml就是干这个的

0
weijunzia
weijunzia
我自己也看了一些资料,貌似真的在进程之间的对象是不能用信号槽的方式进行通信,想了两种方式,第一个是用QTcpSocket,第二是用kill发送信号,在接收信号的进程里面安装信号的处理函数。但是因为当初考虑用QT的原因就是可移植性,希望在linux和windows下面都能运行,第二种方式好像不行。而且Qt D-Bus只基于Unix,因此在windows上面的可靠性不太清楚,暂时想到的就是第一种方式了。
0
powerwheel
powerwheel

那就用Socket吧

0
powerwheel
powerwheel
http://qt-project.org/forums/viewthread/32046/
看这个是可以实现的,只不过需要自己编译
weijunzia
weijunzia
这个确实不错,不过要手动改啊
返回顶部
顶部