по поводу QxtRPCService.
В связываемых приложениях создаются объекты QxtRPCService, связанные с одним и тем же QIODevice.
Далее прицепляются к ним сигналы и слоты любых объектов с помощью attachSignal и attachSlot.
Связующим звеном тут выступает rpcFunction.
Например, в первом приложении некоторый объект o1 вызывает сигнал readFile(QString fileName). Во втором приложении некоторый объект o2 имеет слот readFile(QString fileName). Для того, чтобы вызвать слот объекта o2 из объекта o1 нужно в первом приложении сделать
rpcService->attachSignal(o1, SIGNAL(readFile(QString)), "readFile_QString");
а во втором
rpcService->attachSlot("readFile_QString",o2, SLOTreadFile(QString)));
Теоретически в качестве связующего QIODevice можно использовать и, например, файл. Но я не пробовал.
На мой взгляд тут лучше QLocalSocket