码迷,mamicode.com
首页 > 其他好文 > 详细

CTK-事件监听

时间:2020-07-09 10:43:18      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:类构造   pre   使用   listen   mamicode   绑定   变化   ice   style   

 CTK一共有三种事件可以监听:框架事件、插件事件、服务事件。但是这些事件只有再变化时才能监听到,如果已经变化过后,进入一个稳定的状态,这时才去监听,那么是无法监听到的。

1、监听接口

主要是ctkPluginContext提供的三个函数:

技术图片

 

 技术图片

 

 技术图片

 

 2、如何使用

可以新建一个专门的服务,专门用于监听CTK的事件变化;也可以依附于某个特定的服务【如日志服务】,当事件变化后就使用事件信息

3、代码

这里以在日志服务里绑定事件的监听,在日志实现类构造函数【或者激活类中】:

LogService::LogService(ctkPluginContext* context)
    :context(context)
{
    context->connectFrameworkListener(this, SLOT(onFrameworkEvent(ctkPluginFrameworkEvent)));
    context->connectPluginListener(this, SLOT(onPluginEvent(ctkPluginEvent)));
    // QString filter = QString("(%1=%2)").arg(ctkPluginConstants::OBJECTCLASS).arg("org.commontk.eventadmin");// 过滤 ctkEventAdmin 服务
//    context->connectServiceListener(this,SLOT(onServiceEvent(ctkServiceEvent))); //, filter);
    context->connectServiceListener(this,"onServiceEvent"); //, filter);
}

注意:最后一个服务事件connectServiceListener是比较奇怪的,它的原型是这样

技术图片

 

 但是第二个参数就只能是个槽函数的字符串,试过SLOT(..)的形式,但是报错了,注意一下就行。

4、运行现象

技术图片

 

CTK-事件监听

标签:类构造   pre   使用   listen   mamicode   绑定   变化   ice   style   

原文地址:https://www.cnblogs.com/judes/p/13272104.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!