效果演示
由于Linux桌面没有统一的托盘。所以没法提供像Windows那样稳定靠谱的右下角托盘图标。之前被迫把程序启动都放在任务栏。但是对应仪器接口和打印客户端,由于不是每次需要用户交互,都放在任务栏影响用户正常操作,还容易被用户关闭了影响传输和打印、导出。
所以需要一套统一的Linux最小化解决方案。托盘是靠不住了,那么我想着把桌面的启动图标利用起来,第一次启动程序直接最小化不放在任务栏,如果用户需要打开界面时候再双击桌面图标,双击后再打开界面。用户X调页面后又最小化,每次打开都结束桌面图标。
这种方案使用没问题,那么程序怎么知道是第一次打开的还是用户要借助图标弹出已经开启程序的界面呢?
实现原理按下图分三段:
1.程序启动后创建run.flag文件
2.如果启动时候run.flag存在说明有进程启动了,自己把run.flag删除后退出,通过删除run.flag通知运行的程序弹出界面
3.启动的程序用定时间检查run.flag是否存在,不存在就知道别人告诉他是需要弹窗界面,同时把run.flag补回来

程序退出把run.flag删除即可

同时在程序界面加上关闭程序按钮来提供关闭的功能


这样就可以在Linux桌面没托盘的情况下解决打印和仪器客户端在任务栏停留的问题