当前位置: 首页 > news >正文

简述网站技术解决方案鄂伦春网站建设

简述网站技术解决方案,鄂伦春网站建设,高新网站建设,源码论坛wordpress模板目录 1.概述 2.监听接口 3.具体实现 1.概述 CTK#xff08;Common Toolkit#xff09;框架中的事件监听机制是一个重要的功能#xff0c;它允许开发者在特定事件发生时接收到通知并执行相应的操作。CTK框架主要支持三种类型的事件监听#xff1a;框架事件、插件事件和服…目录 1.概述 2.监听接口 3.具体实现 1.概述 CTKCommon Toolkit框架中的事件监听机制是一个重要的功能它允许开发者在特定事件发生时接收到通知并执行相应的操作。CTK框架主要支持三种类型的事件监听框架事件、插件事件和服务事件。但是这些事件只有再变化时才能监听到如果已经变化过后进入一个稳定的状态这时才去监听那么是无法监听到的。以下是对这三种事件监听的详细解析 框架事件 针对整个框架的相当于只有一个因为框架只有一个但是这里有个问题就是监听这个事件是在框架初始化之后的所以根本没法监听到框架事件的初始化只能监听到结束的事件。常见的框架事件包括 RAMEWORK_STARTED框架已经启动。PLUGIN_ERROR插件执行过程中发生错误。PLUGIN_WARNING插件执行过程中产生警告。PLUGIN_INFO插件的某种信息性事件。FRAMEWORK_STOPPED框架已经被停止。FRAMEWORK_STOPPED_UPDATE框架在更新过程中停止。FRAMEWORK_WAIT_TIMEDOUT在等待超时过期之前框架没有停止。 插件事件 插件事件与插件的安装、启动、停止和卸载等过程紧密相关。常见的插件事件包括 INSTALLED插件已经被安装。RESOLVED插件已经被解析。LAZY_ACTIVATION插件将被惰性激活。STARTING插件即将被激活。STARTED插件已经被启动。STOPPING插件即将停用。STOPPED插件已经被停止。UPDATED插件已经被更新。UNRESOLVED插件无法被解析。UNINSTALLED插件已经被卸载。 通过监听插件事件开发者可以实时掌握插件的状态变化并进行相应的处理。         服务事件 服务事件主要涉及服务的注册、注销和属性变化等。常见的服务事件包括 REGISTERED服务已经被注册。MODIFIED已注册服务的属性被修改。MODIFIED_ENDMATCH已注册服务的属性已被修改并且新属性不再与侦听器的筛选器匹配。UNREGISTERING此服务正在注销过程中。 通过监听服务事件开发者可以了解到服务的生命周期状态并在必要时采取相应的措施。 2.监听接口 主要是ctkPluginContext提供的六个函数 class CTK_PLUGINFW_EXPORT ctkPluginContext {//...public:bool connectPluginListener(const QObject* receiver, const char* slot, Qt::ConnectionType type Qt::QueuedConnection);void disconnectPluginListener(const QObject* receiver, const char* slot 0);bool connectFrameworkListener(const QObject* receiver, const char* slot, Qt::ConnectionType type Qt::QueuedConnection);void disconnectFrameworkListener(const QObject* receiver, const char* slot 0);void connectServiceListener(QObject* receiver, const char* slot,const QString filter QString());void disconnectServiceListener(QObject* receiver, const char* slot);//... }; 在CTK框架中事件监听通常通过实现相应的监听器接口并在适当的时机注册监听器来实现。监听器可以通过框架提供的接口如ctkPluginContext连接到事件源以便在事件发生时接收到通知。 此外CTK框架还支持通过ctkEventAdmin服务进行事件发布和订阅这是一种更加灵活和强大的事件通信方式。通过ctkEventAdmin开发者可以定义自定义事件并控制事件的发送和接收。 3.具体实现 以下是一个简单的示例展示了如何在CTK框架中注册事件监听器 #include QObject #include ctkPluginFrameworkEvent.h #include ctkPluginEvent.h #include ctkServiceEvent.h class EventListener : public QObject { Q_OBJECT public: explicit EventListener(ctkPluginContext* context, QObject *parent nullptr); public slots: void onFrameworkEvent(const ctkPluginFrameworkEvent event); void onPluginEvent(const ctkPluginEvent event); void onServiceEvent(const ctkServiceEvent event); }; EventListener::EventListener(ctkPluginContext* context, QObject *parent) : QObject(parent) { // 假设已有ctkPluginContext *context可用 context-connectFrameworkListener(this, SLOT(onFrameworkEvent(ctkPluginFrameworkEvent))); context-connectPluginListener(this, SLOT(onPluginEvent(ctkPluginEvent))); context-connectServiceListener(this, SLOT(onServiceEvent(ctkServiceEvent))); } void EventListener::onFrameworkEvent(const ctkPluginFrameworkEvent event) { // 处理框架事件 if (!event.isNull()) {QSharedPointerctkPlugin plugin event.getPlugin();std::cout FrameworkEvent: [ plugin-getSymbolicName().toStdString() ] event.getType() event.getErrorString().toStdString() std::endl;} else {std::cout The framework event is null std::endl;} } void EventListener::onPluginEvent(const ctkPluginEvent event) { // 处理插件事件 if (!event.isNull()) {QSharedPointerctkPlugin plugin event.getPlugin();std::cout PluginEvent: [ plugin-getSymbolicName().toStdString() ] event.getType() std::endl;} else {std::cout The plugin event is null std::endl;} } void EventListener::onServiceEvent(const ctkServiceEvent event) { // 处理服务事件 if (!event.isNull()) {ctkServiceReference ref event.getServiceReference();QSharedPointerctkPlugin plugin ref.getPlugin();for(const auto pluginD : ref.getUsingPlugins()){std::cout ServiceEvent: [ plugin-getSymbolicName().toStdString() ] event.getType() pluginD-getSymbolicName().toStdString() std::endl;}} else {std::cout The service event is null std::endl;} } 将监听在main函数中加上 // 事件监听 EventListener listener(pluginContext); 之后运行代码即可监听到对应的信息。
http://www.tj-hxxt.cn/news/231390.html

相关文章:

  • 国内高端大气的网站设计设计院一般年薪
  • 做视频搬运工的网站海南住房建设厅定额网站
  • 郑州php网站建设外包公司一个人头挣多少钱
  • 东莞做网站优化哪家好网站设计的风格有哪些
  • 山东住房建设厅官网站网站设计 用户心理研究
  • 网站系统建设网站建设服务器环境配置
  • 做情侣网站电子商务网站建设学什么软件
  • 龙之向导外贸经理人网站东莞网站建设对比
  • 哪个网站可以找题目给小孩做朝阳市网站建设
  • 时尚网站设计案例如何做图片网站
  • 大数据培训班需要多少钱百度seo快速见效方法
  • 上海做网站的公Wordpress 新建标签
  • 做网站怎么排版好看最新新闻热点事件2022年
  • 西安企业免费建站装修加盟
  • 湖南营销型网站建设多少钱广州电子商务网站建设费用
  • 电子商务网站建设利益分析网站制作公司前十排名
  • 镇江网站建设案例杭州平面设计培训
  • 企业网站主页设计工作态度和责任心句子
  • 网站整合建设是啥意思网站建设十
  • 网站建设 金手指排名霸屏wordpress 购买会员
  • 重庆网站seo什么意思iis怎么做网站
  • 网站建设 开办费太仓seo网站优化软件
  • 网站制作好以后怎么管理网站建设要做ui和什么
  • 建设部网站取消园林资质用自己网站做邮箱域名解析
  • 网站验证码插件网站建设推荐郑国华
  • 佛山网站制作好处做地方行业门户网站需要什么资格
  • 外贸联系网站商标注册在哪个部门申请
  • 我的世界服务器网站怎么做上海做网站的多吗
  • 自建网站服务器降龙网络专业做网站
  • 网站建设+太原那个公司建设网站