启动QSyncthingTray
时,如果没有运行任何方案组/托盘,则会显示错误对话框:
I couldn't detect any system tray on this system.
[ OK ]
并且在按下[ OK ]
时退出。
- 奇怪的是,如果
QSyncthingTray
已经作为任务栏图标运行并关闭面板,QSyncthingTray
不会退出,重新启动面板后,QSyncthingTray
仍然存在... *
对于我的~/.xsession
& ~/.xinitrc
启动,我想添加一个循环检查是否存在托盘,伪代码:
loop:
if system-tray.is-available:
run QSyncthingTray
done
else sleep 1
如何执行if system-tray.is-available
?
首选语言是Perl
,也对Raku
和POSIX sh
感兴趣。其他语言也受欢迎。
1条答案
按热度按时间r7knjye21#
QSyncthingTray
使用了Qt c++库中的isSystemTrayAvailable()函数。你也可以这样做。
is_tray_available.cpp:
QT是迟钝的,你需要使用完整的构建系统来构建使用它的程序
is_tray_available.pro
:将这两个文件保存在同一目录中,执行
qmake
、make
,瞧,您就得到了可以在shellscript中使用的可执行文件