• 4347阅读
  • 1回复

[提问]重载QMenu和QWidgetAction自定义菜单的问题 [复制链接]

上一主题 下一主题
离线huanqianhapp
 

只看楼主 倒序阅读 楼主  发表于: 2014-06-04
先说需求:  需要做一个特殊形状的菜单栏,像这样:

里面是普通的菜单选项

我的尝试:
    重载QMenu,在paintEvent中绘制如上图的边框。
    重载Qwidget:(用于QWidgetAction的DefaultWidget)
        定义paintEvent绘制菜单选项(使用普通的QAction会导致菜单被覆盖,没有选项)。
        定义enterEvent和leaveEvent,设置类似于QMenu:selected的状态。enterEvent中检查到若是有子菜单就用popup弹出。

遇到的问题
    popup子菜单后,其他QWidgetAction里的DefaultWidget不能正确触发enterEvent和leaveEvent(使用mouseMoveEvent也不行)

求个方案,最好能使用QAction;或指点一下不能正确触发enterEvent和leaveEvent的原因
另外,重绘QMenu时直接把图片画过来了,不能支持多个选项,而且不太好看,要是各位有其他的方案也请指点一下

谢谢各位了

离线huanqianhapp

只看该作者 1楼 发表于: 2014-06-05
高手在哪里,帮帮忙啊
快速回复
限100 字节
 
上一个 下一个