Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QT、高级GUI、精美的上下文菜单_C++_Qt - Fatal编程技术网

C++ QT、高级GUI、精美的上下文菜单

C++ QT、高级GUI、精美的上下文菜单,c++,qt,C++,Qt,我正在做一个Qt项目,我想做一个奇特的右击上下文饼图。。。。菜单 就像图中的一样 吼叫 我正在使用QGraphicsSitem、QGraphicscene、QGraphicsView,并将背景设置为透明 setAttribute(Qt::WA_TranslucentBackground); setStyleSheet("background: transparent ;border: none;"); 我想实现的是,当用户在圆上时,它是一个子菜单,然后会出现一个饼状菜单,但是 问题是: 不

我正在做一个Qt项目,我想做一个奇特的右击上下文饼图。。。。菜单

就像图中的一样

吼叫

我正在使用QGraphicsSitem、QGraphicscene、QGraphicsView,并将背景设置为透明

 setAttribute(Qt::WA_TranslucentBackground);
 setStyleSheet("background: transparent ;border: none;");
我想实现的是,当用户在圆上时,它是一个子菜单,然后会出现一个饼状菜单,但是

问题是:

不幸的是,鼠标事件将不会发出,除非它接触我的QGraphicsView中的一个实心像素,所以当鼠标光标停留在子菜单上时,红色的饼图将出现,但只要我移动到饼图中的某个扇区,它将消失,因为我不再在橙色圆圈上悬停

还有其他好主意或解决方案吗,这样我可以在透明区域上获得鼠标事件(我将计算与橙色圆圈的距离,如果鼠标在范围内,饼图将保持显示)


谢谢。

我想你可以这样做:

  • 将鼠标悬停在橙色按钮上,子菜单出现
  • 保持子菜单出现,直到您的鼠标悬停在nothing(无)或悬停在另一个圆形菜单上。当你将鼠标移动到子菜单->时,意味着你将鼠标悬停,所以子菜单仍然会在那里。若你们的子菜单都是一样的,那个么当你们将鼠标悬停在另一个圆圈上时,只需移动子菜单的位置,也许可以设置一些属性
  • 确保您的橙色圆圈和子菜单重叠,以便将鼠标从橙色移动到子菜单不会触发“无悬停”

您的上下文菜单是否正在使用QMenu,并且您是否将图形视图放在QMenu上?或者上下文菜单在图形视图中?不,我根本不使用QMenu,只使用QGraphicsView和QWidget,以及从QGraphicsItem继承的一个类,它表示一个可单击的项(图像中的圆圈)。