Qt在场景/视图的中心添加项目

Cri*_*tin 3 qt qgraphicsview qgraphicsscene

问候,

我正在尝试将QGraphicsItem完全添加到当前屏幕的中心.
我的QGraphicsScene非常大(10k X 10K),所以QGraphicsView无法完全显示它,还有滚动条.

我找不到任何函数来返回我当前屏幕的矩形,我在所有QGraphicsScene和QGraphicsView函数中搜索.
有返回场景rect的函数(它返回一个矩形10k X 10k但它没用)并且有返回鼠标位置的函数,但是我需要移动鼠标并单击菜单以便鼠标不再在里面场景和物品将在可见空间外生成......

非常感谢你.

zku*_*nov 5

您应该将视口的左上角(0,0)映射到场景.宽度和高度等于视口的矩形和高度.

要获取当前屏幕的矩形,请尝试以下操作:

QRect exposedRect(graphicsView.mapToScene(0,0).toPoint(), graphicsView.viewport()->rect().size());
Run Code Online (Sandbox Code Playgroud)

我假设你可以从这里处理它.

  • @Cristi Constantin:您是否尝试过graphicsView.mapToScene(graphicsView.viewport() - > rect().center())来获取当前屏幕的中心点,这应该可以胜任. (2认同)