QT,高级GUI,花哨的上下文菜单

时间:2016-03-16 20:34:13

标签: c++ qt

我正在开发一个Qt项目,我想制作一个花哨的上下文饼,右击....菜单。

就像图像中的那个

enter image description here吼叫

我正在使用QGraphicsItem,QGraphicsScene,QGraphicsView,并通过

设置背景透明
 setAttribute(Qt::WA_TranslucentBackground);
 setStyleSheet("background: transparent ;border: none;");

我想要实现的是当用户在圈子上方移动并且它是一个子菜单时,会出现一个饼图菜单,但是,

问题是:

遗憾的是鼠标事件不会发出,除非它触及我的QGraphicsView中的实体像素,所以当鼠标光标移动到子菜单上时,红色饼图会出现但是当我移动到点击饼图中的某个扇区时它会因为我不再盘旋在橙色圆圈上而消失。

任何其他好主意或解决方案,这样我就可以在我的透明区域上获取鼠标事件(我将计算距离橙色圆圈的距离,如果鼠标IN RANGE,那么馅饼将保持显示)

感谢。

1 个答案:

答案 0 :(得分:0)

我认为你可以这样做:

  • 将橙色悬停,然后显示子菜单。
  • 保持子菜单显示,直到鼠标悬停或悬停另一个圆形菜单。将鼠标移动到子菜单时 - >它意味着你悬停的东西,所以子菜单仍然存在。如果您的子菜单都相同,那么当您悬停另一个圆圈时,只需移动子菜单位置并设置一些属性。
  • 确保您的橙色圆圈和子菜单重叠,因此将鼠标从橙色移动到子菜单不会触发"不会悬停"