gpt4 book ai didi

c++ - QT-Dbus 信号/插槽?

转载 作者:太空宇宙 更新时间:2023-11-04 14:14:25 25 4
gpt4 key购买 nike

我如何 Hook 我的 QT 插槽以响应某些第 3 方服务生成的 D-BUS 信号?

下面是对的吗?

QDBusConnection bus = QDBusConnection::systemBus();
bus.connect("com.me.foo", "/", "com.me.foo.bar", "foo",
this, SLOT(fooSignal()));

最佳答案

首先,您必须找出该服务在哪个总线上注册(系统或 session )。对于 session 总线,您必须将 QDBusConnection::systemBus() 更改为 QDBusConnection::sessionBus()

要为 connect() 获取正确的参数值,您必须获取服务名称、对象路径、接口(interface)和信号名称。

完成这两项任务的最简单方法是使用 qdbusviewer 应用程序,它是 Qt 开发工具(Ubuntu 中的 qt4-dev-tools 或 qttools5-dev-tools)的一部分。它允许查看两条总线上的服务、遍历对象树和列出方法。 D-Bus 接口(interface)的属性和信号,由每个注册对象实现。

关于c++ - QT-Dbus 信号/插槽?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12485853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com