• 6916阅读
  • 2回复

求教,怎么让弹出菜单的选项的图标在鼠标离开时,变换颜色(已经解决) [复制链接]

上一主题 下一主题
离线cangtiantao
 
只看楼主 倒序阅读 楼主  发表于: 2010-04-21
各位高手,我做了一个弹出菜单,类似于windows的右键菜单,当鼠标停留在菜单的某个选项上时,菜单选项的图标换个新图片,然后鼠标离开该选项时图标变回原来的图片。
我是用信号和槽方法, connect(menu1,SIGNAL(hovered(QAction*)), this, changimage(QAction*));
槽函数 void changimage(QAction *num)
              {
                         // 让菜单选项图标是鼠标未在停留在上面的图标
                         action[0]->setIcon(QIcon(":/pic/act0.png"));    
                          ...                          

                          if (num == action[0])
                          {
                               action[0]->setIcon(QIcon(":/pic/act1.png"));   // 跟换图片
                          }
                          if (num == action[1])
                           {
                               ...
                           }
                           ...
              }

代码完成后,鼠标在菜单上上下移动图标可以跟换,但当鼠标水平移动出菜单范围后,鼠标最后停留的选项图标没有还原。
    请教各位大侠如何让,鼠标移动出菜单范围也能使菜单选项的图标还原成原来的图片。谢谢
[ 此帖被cangtiantao在2010-04-23 16:42重新编辑 ]
离线cangtiantao
只看该作者 1楼 发表于: 2010-04-27
通过判断鼠标是否离开菜单来执行跟换图标操作。

在 事件过滤器函数中

{
    if (target == menu)
    {
          if (event->type() == Qt::Leave)
          {
                   action[0]->setIcon(QIcon(":/pic/act0.png"));     //换回原图片
                    ...
          }
    }


}
离线wd007

只看该作者 2楼 发表于: 2010-04-28
不错的说。
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
快速回复
限100 字节
 
上一个 下一个