12:高级篇 - CTK 事件管理机制(sendEvent/postEvent)

Posted 一去丶二三里

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了12:高级篇 - CTK 事件管理机制(sendEvent/postEvent)相关的知识,希望对你有一定的参考价值。

作者: 一去、二三里
个人微信号: iwaleon
微信公众号: 高效程序员

在 CTK Plugin Framework 中,插件间的通信是通过 EventAdmin 来完成的。EventAdmin 是一种基于发布/订阅的方式,一个插件订阅某一主题之后,另一个插件发布一个与该主题相关的事件,从而达到通信的目的。

EventAdmin 提供了两种方式,来进行事件管理:

  • sendEvent()/postEvent() + ctkEventHandlersendEvent() 以同步方式发送,而 postEvent() 则以异步方式发送。
  • signal/slot:同步或异步发送,取决于发射信号时使用的 Qt::ConnectionType

下面,先来分享第一种方式。

准备环境

要进行插件间通信,离不开 EventAdmin,所以首先要确保 liborg_commontk_eventadmin.dll 已经编译成功。编译方式,请参考《04:进阶篇 - 编译 CTK》。

然后,创建几个插件,让它们彼此之间可以通信。以发布博客为例,新建两个插件:

  • BlogManagerÿ

以上是关于12:高级篇 - CTK 事件管理机制(sendEvent/postEvent)的主要内容,如果未能解决你的问题,请参考以下文章

11:高级篇 - CTK 事件管理机制(插件间通信)

15:高级篇 - CTK 事件与监听

16:高级篇 - CTK 服务追踪

17:高级篇 - 访问 CTK 服务的最佳方式

14:高级篇 - CTK 服务工厂 简述

18:CTK 总结篇(FAQ)