Qt for Windows版本下编译QtDBus模块

2023-05-16

转载时请注明出处和作者联系方式
作者联系方 式: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应用方面的经验.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt for Windows版本下编译QtDBus模块 的相关文章

随机推荐

  • GET,POST,PUT,DELETE,OPTIONS等请求方式简单总结

    之前做的java web项目 xff0c 基本上只使用get和post的请求方式 xff0c 但是现在新项目额外增加了put xff0c delete xff0c 查了点资料 xff0c 做个简单的总结 1 GET get请求是用来获取数据
  • IOS TableView Cell重用机制及TableView常用Code

    写的太好了 xff0c 多谢楼主的无私分享 文章来自 xff1a http heidianfeng blog 163 com blog static 6184345620121114104552518 创建UITableViewContro
  • 编译Linux驱动程序

    基于Ubuntu 12 10 xff0c 编译Linux驱动程序 1 准备linux内核源码 此时 xff0c 我要编译的驱动是基于Ubuntu 12 10内核的 xff0c 所以我下载的是其对应的内核源码包 xff1a linux 3 5
  • 卸载windows10子系统卸载linux

    参考地址 xff1a https docs microsoft com en us windows wsl wsl config 查看所有已经安装的分发版本 xff1a wsl list all 查看正在运行的分发版本 xff1a wsl
  • github镜像站

    github镜像站 xff1a https hub fastgit org GitHub 在国内经常会出现无法访问的情况 xff0c 下面分享几个 GitHub 镜像站供大家使用 xff01 全局加速 可直接访问站点 xff0c 查看代码等
  • vnc连接linux失败,vnc连接linux失败解决办法

    在日常工作学习中 xff0c 经常会使用到vnc连接 xff0c 那有小伙伴知道如何进行vnc连接linux吗 xff1f 当vnc连接linux失败又该如何解决呢 xff1f 之前有简单介绍过如何实现vnc连接linux 那接下来让我们一
  • 域名是如何关联到CDN的

    用户在访问一个域名的时候 xff0c 网络中是怎么知道这个域名到底是配置在哪一个CDN厂商的呢 xff1f 笔者以test1 huiziguoxueshe com为例 xff0c 来描述下具体的过程 xff0c 如下所示 xff1a ste
  • 第五章:软件详细设计

    真是应了那句 xff1a 白天游四方 晚上点灯补裤裆 捂脸 xff09 xff0c 孩子睡了夜深人静了 我才是开始我的小笔记整理工作 详细设计是软件设计的第二阶段 xff0c 这一阶段的工作 xff0c 就是要对系统中的每个模块给出足够详细
  • 第7章 软件测试(1)

    今天是个开心的日子 xff0c 具体为啥开心我知道你懂得 继续我的龟速学习小笔记 它来了它来了 xff0c 你说它很简单 xff0c 当我看到此章的一部分内容后发现了原来学霸和学渣差别就是如此大 xff08 捂脸 xff09 xff0c 今
  • 第7章 软件测试(3)

    一晃3天没有学习了 xff0c 昨天的阅读量创立了一个新高 xff0c 内心还是很欢喜的 7 4 2黑盒技术 黑盒技术着重测试软件功能 xff0c 需重点研究需求说明和总体设计中有关程序功能输入 输出之间的关系等信息 xff0c 从而与测试
  • 第七章 软件测试(此章完结)

    春乏秋困 xff0c 一个早上哈气连天 脖子酸 腰痛 xff08 捂脸 xff09 近期叫醒我的不是闹钟也不是梦想 xff0c 而是凌晨4点和6点广播大喇叭喊居民做核酸的声音 xff0c 还是别的小区的 xff08 再次捂脸 xff09 也
  • 第十章:面向对象分析(2)

    3 泛化关系 泛化关系和类找那个的泛化概念是一样的 xff0c 于用例继承父用例的行为和含义 xff0c 还可以增加或覆盖父用例的行为 xff0c 子用例可以出现在任何父用例出现的位置 xff08 父和子均有具体的实例 xff09 也可以重
  • 第十章:面向对象分析(此章完结)

    10 4 4建立活动图 活动具体表现为由一系列动作组成的执行过程 xff0c 将各种活动及不同活动之间的转换 xff0c 用图形进行表示就构成了活动图 xff0c 作用是对系统的行为建模 1 活动图与流程图 活动图描述系统使用的活动 xff
  • 第十五章 软件工程新技术

    俺家老大说这一章我不需要仔细看 xff0c 快快过一遍就行 xff08 可能是觉得以我的能力一时半会也用不到吧 xff08 捂脸 xff09 xff09 那么我就抄一段本章小结吧 xff0c 后面如有需要我在重新认真学习 xff08 奸笑
  • 第四章 软件测试方法(2)

    上周学习了白盒 xff0c 本周开始学习黑盒测试 4 3黑盒测试 黑盒测试 xff08 Black Box Testing xff09 也称功能测试 xff0c 主要测试每个功能是否正常使用 是软件测试使用中最广泛的一类测试 在黑盒测试中
  • vnc viewer手机中文版,超好用的5款vnc viewer手机中文版

    在平时工作中 xff0c 经常会用到vnc viewer软件 当软件打开都是英文介绍 xff0c 真的让人很头痛 在各种各样的vnc viewer手机中文版软件中 xff0c 要想找到那款让你使用方便的软件 xff0c 真的很不容易 xff
  • 第九章 APP项目测试(4) 测试工具

    接上面一篇 继续 xff08 7 xff09 kill process after error 参数说明 xff1a 用于指定当应用程序发生错误时 xff0c 是否停止运行 如果指定此参数 xff0c 当应用程序发生错误时 xff0c 应用
  • 第九章 APP项目测试(此章完结)

    9 4 5 Fiddler 是一个HTTP的调试代理工具 xff0c 它以代码服务器的方式 xff0c 监听系统的HTTP网络数据 xff0c 俗称抓包工具 可直接去官网下载安装 1 Fiddler工具介绍 启动Fiddler后 xff0c
  • 软硬件基础知识学习--小日记(1)

    终于看完了软件工程和软件测试技术指南两本书 xff0c 因为是自学总觉得前学后忘 有时候找老公不耻下问 xff0c 他总是很完美的把我问的哑口无言 昨天意外翻到黑马程序的的视频 xff0c 觉得非常适合我这0基础的小白 然后就有了今天的小日
  • Qt for Windows版本下编译QtDBus模块

    转载时请注明出处和作者联系方式 作者联系方 式 xff1a Lutx lt 80437 at zj dot com gt Qt中已经包含了QtDBus模块 但此模块只能在Unix系统下使用 却不支持Windows系统 这里介绍的是Windo