Qt Remote Objects 学习笔记(Qt 远端可调用对象框架)

自Qt 5.9之后,Qt推出了一个框架库,Qt称作Qt Remote Objects(QtRO),我自己翻译为远端可调用对象哈哈,不像其他的Qt功能库,这个是没有示例工程的,只有一个在帮助手册overview里面的三个例子,那么先说明Qt的RO是什么

首先,进程通信一般分为 消息队列,共享内存,管道(有名和无名),TCP/UDP等,也就是IPC的绝大多数机制,当然TCP和UDP可以具有RPC的机制,如果你要写的话;

传统的进程通信已经无法满足分布式等跨越机器网络的函数调用、耦合度降低、可扩展等情况,那么就需要一些可以复用的框架扩展,于是出现了COM通信调用,ICE框架等,但是使用这些框架有问题在于平台的兼容问题;那么问题来了,如果自己拿Qt的原有框架写要怎么写一个呢,我想大家无非就是想QT现在做的一样,自己搞一个映射吧

那么可以猜测我们要这样子写

1、建立通信 :TCP或者管道,建立客户端和服务

2、定义模板,需要公布对外的函数,对象,使用字符串发布到服务,或者协议内

3、建立自身的函数接口映射,当服务器发送消息的时候调用对应的函数和参数

4、管理自身的连接

以上几部只是大概的按照工作经验猜测Qt的RO逻辑,实际上也差不多,那么可想而知,Qt的qml通信,QT和web的包裹通信也是应该是使用这个机制,研究这个机制,也就很容易了解了其他几个的机制,在编写代码的时候,也会很清楚写的意义,好了,下面我们开始学习QT的示例代码

例子1 单机静态编码直连

帮助手册翻译

1.第一步,创建一个Rep文件(但是我个人觉的还是先创建一个控制台工程,再添加该文件)

QT示例代码如上

该文件作用是一个模版,用于后面由Qt目录下面的repc编译生成对应的一些代码,有点像信号与槽,之后生moc文件或者ui生成xxx_ui.h文件

PROP是在手册里面有说明,表示是一个属性,QT元对象系统里面对应会生成QProperty声明,qml也是类似,声明作用在于会生成对应的读写、信号等函数操作,而且都可以对外调用

类似的宏可以看Qt手册里面的解释

SLOT就不用说了,是声明一个槽函数

2.添加到工程中(这个也就是为什么我说最好先创建工程的原因)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值