【问题标题】:How to respond to desktop startup notification with Qt如何使用 Qt 响应桌面启动通知
【发布时间】:2013-04-16 07:33:28
【问题描述】:
我有一个Qt应用,在Xfce和其他Linux桌面下运行,效果很好,只是应用启动时循环的“启动通知”图标没有消失,所以在app main后会持续一段时间窗口正在显示并完成。
我会假设 QApplication 会在主窗口事件循环开始时默认关闭通知,或者我会调用一些方法来这样做。我在 Qt API 文档中或在 Qt 启动通知上的谷歌搜索中找不到任何相关内容。
如何在 Qt 应用程序中关闭启动通知。
【问题讨论】:
标签:
qt
notifications
desktop
startup
【解决方案1】:
不添加
StartupNotify=false
到您的应用程序的.desktop 文件解决问题?在KDE 中,
X-KDE-StartupNotify=false
作品;也许 XFCE 也有类似的变量。
【解决方案2】:
当第一个窗口首次显示时,启动通知会在 Qt 内部自动发送(参见 src/plugins/platforms/xcb/qxcbscreen.cpp),但显然,由于错误,如果有引号或程序路径中 .desktop 文件中的转义字符 (\)。
另外,如果出现Terminal=true,环境变量DESKTOP_STARTUP_ID会被xterm删除,不会到达你的应用程序,所以最好不要同时启用Terminal和StartupNotify标志。
在 MATE 上进行了测试。