admin管理员组

文章数量:1548767

一.效果


上图是我仿的360安全卫士的托盘菜单。顶部和底部的两个菜单项都将背景色设置成了360安全卫士的主题色,中间的大菜单项由6个按钮组成,像这些非规则的菜单项都需定制。虽然360安全卫士总是无缘无故拦截我,但是360产品外观设计还是非常赞的,要不也不会被众多程序猿模仿。

二.原理

QQ音乐的托盘菜单也很有个性,但实现原理都差不多。

我们要用到一个平时很少接触到的类:QWidgetAction。这个类自Qt 4.2引入,继承自QAction。根据类名也可以推测出其含义:使用QWidget来充当Menu的Action。于是,我们似乎明白了自定义菜单的精髓:用Widget来做Action。也就是说顶部菜单项、底部菜单项和中间由6个按钮组成的菜单项实际上都是Widget。那么布局好的Widget如何"伪装"成Action插入到菜单项中去呢?我们可以使用QWidgetAction的setDefaultWidget()方法来完成这

本文标签: 系统托盘菜单安全卫士QT