Qt for Windows版本下编译QtDBus模块

转载时请注明出处和作者联系方式
作者联系方 式:Lutx <80437 at zj dot com>

 

Qt中已经包含了QtDBus模块, 但此模块只能在Unix系统下使用, 却不支持Windows系统. 这里介绍的是Windows系统下如何生成QtDBus库, 并通过Qt的例子和工具来演示DBus的运行和通讯. 欢迎交流和指正.

 

说明: 以下步骤的软件版本分别为, Qt - 4.6.0 for msvc, QtCreator - 1.3.0, winDBus - 1.2.4, 这些都可以在网上下载到.

 

整个过程分为4 个步骤 :

 

A. 生成 QtDBus 动态库 :

1.  QtCreator 中打开  [QT-dir]/src/dbus/dbus.pro 项目 ;

   [QT-dir]为Qt的安装目录, 比如C:/Qt/4.6.0;

 

2. 找到INCLUDEPATH

# INCLUDEPATH += .

  修 改为

INCLUDEPATH += . [winDBus-dir]/include

LIBS_PRIVATE += -L[winDBus-dir]/lib

 

  其 中"[winDBus-dir]" winDBus 的所在目录 . 这里是要把winDBus的头文件和库文件加到项目路径中.

 

3.  生成项目 完成后在 [QT-dir]/bin 目录下会生成 QtDBus4.dll 以及 QtDBusd4.dll 文件 [QT-dir]/lib 目录下会生成 QtDBus4.lib 以及 QtDBusd4.lib 以及上述的两个 dll 文件 .

 

 

B:生成 QtDBus Tools

1.  QtCreator 中打开 [QT-dir]/tools/qdbus/qdbus.pro,  生成项目

2.  结束后会在[QT-dir]/bin 目录下生成四个可执行文件  qdbus*.exe

 

 

C:生成 QtDBus 例子

1.  QtCreator 中打开 [QT-dir]/exmaples/dbus/dbus.pro,  生成项目

2.  结束后会在examples 目录的各自的子目录下生成可执行文件

 

 

 

D: 运行 Qt  的  Remote Control Car 例子

下 面来运行一下例子中的遥控车的程序.

1.  首先启动windbus service,  打开命令行窗口 cmd,  执行

cd [winDBus-dir]/bin

dbus-daemon --config-file=../etc/session.conf

 

 

2.  启动Qt 工具 qdbusviewer([QT-dir]/bin/qdbusviewer.exe) 来查询 DBus 总线和接口 , 该程序是上述步骤 B 中生成的 如果显示  " Error: Cannot connect to D-Bus: ", 原因是因为无法加载 dbus-1.dll,  可以将此文件从 winDBus/bin目录下复制到 [QT-dir]/bin 目录下 也可以将 winDBus/bin 的目录加到环境变量 PATH 另外启动此程序还需要环境变量 DBUS_SESSION_BUS_ADDRESS( [winDBus-dir]/bin/dbus-env.bat 文件 ),  设置

set DBUS_SESSION_BUS_ADDRESS=tcp:host=localhost,port=12434

 

也可以在 命令行窗口中通过执行以下命令来执行:

[winDBus-dir]/bin/dbus-env.bat

[QT-dir]/bin/qdbusviewer.exe

 

启动后应该可以考到DBus 总线服务  org.freedesktop.DBus 以及 相应的方法

 

 

3.  启动遥控汽车程序([QT-dir]/examples/dbus/remotecontrolledcar/car/release/car.exe),  这时候 qdbusviewer Service 栏目中会多出一个服务 , com.trolltech.CarExample

 

 

4.  启动遥控器程序([QT-dir]/examples/dbus/remotecontrolledcar/controller/release/controller.exe),  程序会自动连接刚才启动的 car 程序 , 利用界面上的 4 个按钮可以控制汽车的运动 .

 

以上就是生成QtDBus模块的过程, 接下来就是利用它来编写应用程序.  刚接触DBus, 欢迎熟悉的朋友交流DBus应用方面的经验.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值