深入研究跨平台桌面应用的实现细节
在前面的随笔《基于wxpython的跨平台桌面应用系统开发》中,我们介绍了一些关于wxpython开发跨平台桌面应用的总体效果。开发桌面应用时,需要处理许多界面细节。在本篇随笔中,我们将继续深入该主题,对开发跨平台桌面应用的一些实现细节进行研究并总结,重点介绍程序托盘图标和界面最小化及恢复处理。
1、程序托盘图标处理效果
一般桌面应用,如Windows上的Winform应用和MacOS上的桌面应用,通常会提供一个托盘图标来对程序进行标识和处理。有时在托盘图标上提供一些常用的菜单操作。下面是本程序在Windows下实现托盘图标的界面效果:
同样的程序在MacOS上也会实现类似的效果。只不过,MacOS自带了一些特定的菜单,因此有点重复的感觉:
托盘图标的一些菜单可以用来显示程序的关于信息,以及一些常见操作。在Windows系统里,可以很容易通过双击托盘图标显示主窗体,或者隐藏主窗体(缩小至托盘中)。
2、程序托盘功能实现
那么上面托盘图标的处理以及相关菜单的处理,具体在wxpython开发代码中如何实现的呢?首先,我们可以继承wx.adv.TaskBarIcon来自定义托盘图标类,如下所示:
有了上面的自定义子类,我们在主窗体中简单调用初始化一下即可构建托盘图标及菜单了。
最后在主窗体关闭事件中处理下销毁即可。
如果需要图标进行闪烁的处理,也可以参考下面示例代码。