Qt 6.11 is out! See what's new in the release
blog
Solution for mapToGlobal() in QGraphicsWidgetProxy
General and Desktop
1
Posts
1
Posters
814
Views
1
Watching
-
It is useful when you have a scene with only one view:
@QPoint mapPosToGlobal(const QPoint &pos, QWidget *widget)
{
QWidget *root = widget;
while(root->parentWidget())
root = root->parentWidget();QPoint root_pos = widget->mapTo(root, pos);
QGraphicsProxyWidget *proxy = root->graphicsProxyWidget();
if(proxy)
{
QGraphicsScene *scene = proxy->scene();if(scene && scene->views().count() == 1)
{
QPointF scene_pos = proxy->mapToScene(root_pos);QGraphicsView *view = scene->views().first();
QPoint viewport_pos = view->mapFromScene(scene_pos);return view->viewport()->mapToGlobal(viewport_pos);
}
else
return QPoint();
}
else
return widget->mapToGlobal(pos);
}@