问题标签 [qdbus]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
63 浏览

lua - 通过 os.execute() 对 Lua“qdbus”命令进行故障排除

我正在使用 ArchLinux/KDE/Plasma,我正在尝试编写一个 lua 脚本(作为 TeamSpeak 3 中的插件),它将执行以下命令,该命令在我的终端模拟器中工作,但不是通过 Lua 脚本(看起来以同一用户身份运行)。

以下失败:

我想知道这是权限还是库要求?我知道 os.execute 正在工作,因为我可以运行系统通知。我尝试过类似 machinectl 的替代命令,但这些命令也失败了。我对 Lua 很陌生,我需要一个 dbus 库吗?如果是这样,我不知道如何实现它。

0 投票
1 回答
246 浏览

c++ - Qt DBus 连接不使用 SLOT 参数中的 typedef

QDBusConnection::connect我可以使用旧式SLOT语法将 DBus 信号连接到 Qt 插槽:

如果我为插槽使用参数,则调用connect成功并收到 DBus 信号。QMap<QString, QVariant>如果我使用PropertyDictionarytypedef,它会失败。

我知道 C++,但我是moc魔法新手,所以我希望能得到你的帮助。

我正在 Ubuntu 存储库中的 Ubuntu 18.04、Qt 5.9.5 上构建,使用

0 投票
1 回答
784 浏览

qt - 获取 Linux 中可用的 WiFi 连接列表

我正在尝试使用 Qt5 通过 D-Bus 消息获取 Fedora 31 Linux 中的 SSID 列表。

我正在查看许多教程,但仍然无法通过 D-Bus 进行通信,我仍然不了解接口、路径和服务之间的区别。借助文档帮助(https://developer.gnome.org/NetworkManager/stable/spec.html)和 Internet,我写道:

但是变量“msg”接收一个参数:

如何连接到 D-Bus?

0 投票
1 回答
1387 浏览

qt - 如何使用“QDbusConnection”将“org.freedesktop.DBus.Properties”的“PropertiesChanged”信号正确连接到QT中的插槽?

我正在实现一个嵌入式设备的接口,该接口通过 dbus API 公开其硬件配置。

目前,我计算出对设备硬件 I/O 引脚的访问。虽然配置和读取/写入这些引脚已经按预期工作,但我无法将这些输入引脚的PropertiesChanged信号正确连接到我的 qt 应用程序中的插槽。该信号正在通知听众该引脚上当前输入值的变化。

例如,当通过信号进行 whatched 时,dbus-monitor如下所示:

它表示应用频率 1.7857 kHz 的值。

我像这样连接到信号:

并且连接的插槽看起来像:

我看到连接已成功完成,但显然签名似乎有些不对劲,我想。因为我从来没有看到那个插槽被调用。

这是一个小示例应用程序类的调试输出的摘录,QDBUS_DEBUG=1我在其中实例化了一个输入和一个输出引脚,我在其中连接PropertiesChanged信号,然后手动访问一些 dbus 方法和属性,然后让它空闲等待捕捉的信号。我稍微评论了调试日志。一段时间后,当 dbus 上的信号多次触发时,我退出了应用程序。

我在 SO 或 QT 论坛上阅读了大量关于连接到PropertiesChanged信号的建议,并从那里尝试了一些建议,但无济于事。一定有一些我不知道的签名不匹配。但是,我查看了一些 dbus 应用程序的代码,例如networkmanager-qt,它们使用了我在签名中也使用的三个参数:QString, QVariantMap, QStringList.

我现在被困住了,希望任何人都有我可以遵循的另一个提示。提前致谢。

0 投票
1 回答
93 浏览

qdbus - qdbus 是分段错误

我正在使用 KTimeTracker 来监控我在不同项目上的时间。我有一个定期运行的 PHP 脚本,让我知道我一天工作了多长时间。

用于连接到 KtimeTracker 的 PHP 脚本使用 qdbus 保存到文件,然后使用 qdbus 导出 CSV 文件。

对于那些想知道我为什么要为这种设置而烦恼的人,我在家工作并且需要监控我的时间以确保我的工作时间正确。

该脚本在很长一段时间内运行良好,但最近在使用 qdbus 时开始失败。对 qdbus 的最简单调用是: qdbus org.kde.ktimetracker /KTimeTracker saveAll

结果是

分段错误(核心转储)

qdbus org.kde.ktimetracker /KTimeTracker

qdbus org.kde.ktimetracker

我确定我错过了一些简单但看不到的东西。我已经花了几个小时在谷歌上搜索,但一无所获。

不知道这些有没有价值

任何帮助将不胜感激。

干杯

0 投票
1 回答
59 浏览

qdbus - 如何在 DBus 中获取 QDBusObjectPath?

我在从 DBus 上调用的方法中提取返回值时遇到问题,
这是我的代码:

这是GetOS的定义:

代码的输出是:

没有错误

QVariant(QDBusObjectPath, )

如何获取对象路径?谢谢

0 投票
0 回答
171 浏览

qt - qt qdbus 网络管理器

我通过 dbus 访问网络管理器。目前我已经设法列出了所有可用的连接,我有一个包含 ssid 和密码的 json。我想依靠我的 json 来激活连接。例如,“blabla”网络可用,其密码包含“qt is good”,我的 json 包含作为登录名“blabla”和密码“qt is good”我希望能够连接到该网络我的代码扫描wifi,他返回一个QString:

我在哪里使用它:

json 示例:

0 投票
1 回答
140 浏览

c++ - 如何调用GetSettings qt qdbus 网络管理器?

我正在调用 ListConnections 方法来列出系统上已配置的所有连接。我正在尝试使用网络管理器的 getSettings 方法来检索每个连接的 id,然后使用 Delete 方法删除特定的连接问题是,我不能只获取 id。我举了一个例子:https ://cgit.freedesktop.org/NetworkManager/NetworkManager/tree/examples/C/qt/change-ipv4-addresses.cpp

我的代码:

终端返回:

我不明白为什么我的 QMap 是空的?为什么它根本不包含任何东西?如何检索与ssid对应的id

0 投票
1 回答
26 浏览

c++ - Qt 没有收到正确的 D-Bus 回复

我想在 Gnome 上获得空闲时间。以下命令在输入终端时有效:

dbus-send --print-reply --dest=org.gnome.Mutter.IdleMonitor /org/gnome/Mutter/IdleMonitor/Core org.gnome.Mutter.IdleMonitor.GetIdletime

我是 Qt D-Bus 的新手,不确定如何使用 QDBusInterface 获得相同的结果。我有以下代码:

每次打印 0。如何获得正确的空闲时间?