You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在qdbus命令行工具中传递QVariantMap类型参数?

解决qdbus传递QVariantMap参数给KRunner CommandLine方法的报错问题

当调用KRunner的org.kde.KDBusService.CommandLine方法时,直接传递{}作为QVariantMap类型参数会触发Sorry, can't pass arg of type 'QVariantMap'.错误,这是因为qdbus工具对QVariantMap的参数格式有特定要求,而非JSON格式。

正确的参数传递方式

  1. 传递空的platform-data参数
    如果不需要设置任何平台数据,直接传空字符串即可:
qdbus org.kde.krunner /org/kde/krunner org.kde.KDBusService.CommandLine "ls" "/" ""
  1. 传递带键值对的platform-data参数
    如果需要传递实际的平台数据,使用键:值的格式,多个键值对用逗号分隔:
qdbus org.kde.krunner /org/kde/krunner org.kde.KDBusService.CommandLine "ls" "/" "DesktopName:KDE,WindowId:12345"

原因说明

qdbus工具不支持JSON格式的{}来表示QVariantMap,它要求该类型参数使用键值对字符串:空映射对应空字符串,非空映射则用键:值组合,多组之间用逗号分隔。

内容的提问来源于stack exchange,提问作者Hadock

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 23:59:55