频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

用 DCOP 连接 KDE 应用程序

来源:qqread 作者: 出处:巧巧读书 2006-12-29 进入讨论组

例 5. 当联系者上线时立即发送消息
最后这个例子用到了 Kopete -- 一个 KDE 即时消息客户机。

到现在,这个脚本应该非常容易理解。它接受两个参数,联系者名 ($1) 和消息 ($2)。然后它进行循环,通过 dcop 得到可达联系者列表,并用 grep 来检查给出的名字是否出现,如果没有,则继续循环。如果出现了,循环终止并向联系者发送一条消息(还是用 DCOP)。

清单 1. 向 Falken 教授问候



  name=$1;

  msg=$2;

  echo Waiting for $name to come online

  while ((`dcop kopete KopeteIface reachableContacts | grep -c $name` == 0))

  do

    sleep 5

  done

  echo Sending message "$msg" to "$name"

  dcop kopete KopeteIface messageContact $name "$msg"

创建一个 DCOP 感知的应用程序


现在我们将创建一个 DCOP 感知的应用程序。

简单起见,我将使用“KDevelop”集成开发环境,它有一个非常好的应用程序向导,可以为我们完成大部分工作。

由于我是一个极端的人,我现在用的是 KDevelop 3.0 beta2,但是老一些的版本的步骤也基本上相同。

一个简单的 DCOP 感知的应用程序

  1. 开始,启动 KDevelop(我从 K 菜单中使用 run 命令)。
  2. 我们在 Project 菜单中选择“New Project”,这将激活“Create New Project”向导。
  3. 如果在其中展开 C 树,并展开 C 树下的 KDE 树,我们应该会看一个叫做“Application Framework”的条目。选择这个条目,给出您的应用程序名(例如 dwdcopapp)并填写其他需要的地方。
  4. 继续完成向导其余的部分(大部分情况下您可以只是选择“Next”),直到结束。
  5. 当项目创建后,用 KDevelop 编译并运行它(第一次编译时您将不得不同意运行 automake 和 friends)。
  6. 现在如果我们启动 dcop(或者 kdcop),可以看到有一个对应于我们刚刚创建的应用程序的条目!
  7. 如果我们看看 (k)dcop 中的条目,可以看到已经有了许多功能 -- 我们可以打开一个 URL,退出应用程序,等等。

现在我们来看如何添加一个新函数到通过 dcop 导出的列表中。由于我们在应用程序中已经创建并初始化了一个 DCOP 接口,要做的最简单的事情就是向已有接口添加一个新方法。

  1. 编辑 dwdcopappIface.h,利用下面的签名在 k_dcop: 部分中添加一个新方法:

virtual void dwprintln(QString str) = 0;

  1. 向 dwdcopappView.h 的 public: 部分添加同样的方法签名。
  1. 将下面的实现我们的新函数的代码添加到 dwcopappView.cpp:


void dwdcopappView::dwprintln((QString str)

{

   std::cout << " We've been asked to print: " << str << endl;

   std::cout.flush();

}          

注意,您还必须将

#include <iostream>

放置于已有 include 指令之后。

  1. 编译并执行程序。
  2. 现在如果我们启动 (k)dcop,将会看到 dwprintln(QString) 方法已经添加到了 dwdcopappIface 接口中。如果您执行这个方法并传递一个字符串,它将被输出到输出窗口(或者,如果您是在 KDevelop 之外启动这个应用程序的话,会被输出到命令行)。
  3. 同样可以添加另外的方法。

    可以用添加 dwdcopappIface 的相同方式,向应用程序添加另外的接口。有兴趣的读者应该阅读后面 参考资料中列出的“DCOP documentation for KDE developers”链接,它能告诉您远远超过您所需要知道的有关此话题的内容。

 

文章地址: http://www.qqread.com/net-manage/d290873.html进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
最新论坛文章
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章