zoukankan      html  css  js  c++  java
  • CTK-事件监听

     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、运行现象

    ps:

    ①、框架事件

    针对整个框架的,相当于只有一个,因为框架只有一个,但是这里有个问题,就是监听这个事件是在框架初始化之后的,所以根本没法监听到框架事件的初始化,只能监听到结束的事件。

    类型有

    FRAMEWORK_STARTED
    PLUGIN_ERROR
    PLUGIN_WARNING
    PLUGIN_INFO
    FRAMEWORK_STOPPED
    FRAMEWORK_STOPPED_UPDATE
    FRAMEWORK_WAIT_TIMEDOUT

    ②、服务事件

    在创建、回收插件时的事情,主要体现在服务的注册和注销

    类型有

    REGISTERED
    MODIFIED
    MODIFIED_ENDMATCH
    UNREGISTERING

    ③、插件事件

    在安装、启动插件的过程中呈现的,主要就是插件的一个状态的变化

    类型有

    INSTALLED
    RESOLVED
    LAZY_ACTIVATION
    STARTING
    STARTED
    STOPPING
    STOPPED
    UPDATED
    UNRESOLVED
    UNINSTALLED

     ps:在实际使用中发现很多事件没有发出来

  • 相关阅读:
    图像增强:直方图均衡和小波变换【matlab】
    边缘检测算子和小波变换提取图像边缘【matlab】
    维纳滤波和编码曝光PSF去除运动模糊【matlab】
    编码曝光
    鱼眼镜头的distortion校正【matlab】
    Linux如何查看JDK的安装路径
    Linux启动vi编辑器时提示E325: ATTENTION解决方案
    Linux下useradd命令创建的用户不能登录的问题
    Linux系统下(x64)安装jdk 1.6(jdk-6u45-linux-x64.bin)
    根据wsdl文件,Web工程自动生成webservice客户端调用
  • 原文地址:https://www.cnblogs.com/judes/p/13272104.html
Copyright © 2011-2022 走看看