SuperAPI AI 工具集

qt-desktop-integration

测试与质量

查看项目

更新于 10-16 04:55

技能介绍

用途:测试 Qt/PySide 应用的桌面集成功能。系统托盘、通知和音频位于部件树之外,使用 D-Bus 和 PipeWire 而非 AT-SPI;部件交互请改用 qt-app-interaction 技能。命令从主机或 VM 运行方式相同,无需 SSH 包装,仅任意命令用 vm run。

系统托盘:需 SNI(StatusNotifierItem)支持,VM 运行 snixembed 桥接 XEmbed 图标。tray list 列出托盘项(名称、总线名、对象路径,可加 --json);tray click "AppName" 左键激活,--button right 调用右键菜单;tray menu 显示菜单项及索引;tray select "AppName" "Quit" 按标签点击菜单项。可用 tree 验证窗口或对话框是否出现。

通知:通过 dbus-monitor 监听 org.freedesktop.Notifications,通知以数字 ID 标识。notify listen --timeout 10 捕获通知并返回 ID、应用名、摘要、正文和可用动作;notify dismiss 42 关闭;notify action 42 "open_file" 触发动作按钮。注意 QSystemTrayIcon.showMessage() 可能不发出标准 D-Bus 信号,未捕获时可延长超时排查。

音频:基于 PipeWire。audio virtual-mic start 创建虚拟麦克风(--name 自定义节点名),stop 停止,play audio.wav 输入音频文件;audio record --duration 3 -o /tmp/out.wav 录音,--loopback 捕获输出;audio verify 检查非静音,返回最大振幅、RMS 振幅和时长,静音时退出码 1,--threshold 调整灵敏度;audio sources 列出输入源,audio status 列出活动音频流。

限制:以上为 Linux 专用能力,VM 须运行相应服务(托盘 snixembed、通知 dbus-monitor、音频 PipeWire),虚拟麦克风依赖 pw-loopback(pipewire-utils)。其它细节暂未提供。