Qt - 使用 QTransform(或类似的),将内部 QRect 缩放到 QGraphics/从 QGraphics
Posted
技术标签:
【中文标题】Qt - 使用 QTransform(或类似的),将内部 QRect 缩放到 QGraphics/从 QGraphics【英文标题】:Qt - Using a QTransform (or similar), scale inner QRect to/from QGraphics 【发布时间】:2014-05-16 15:19:36 【问题描述】:一些背景 - 假设您有 QGraphicsScene,并且只有一个视图,即与场景的 1-1 比例。 您有一个 QRect A,它表示场景的外部视图,具有预定义的像素大小。 您有一个 QRect A1,它是 A 内部的一个较小的矩形。
如何将 A1 转换为场景,使其正确缩放(即,如果它是矩形 A 的 1/4,它将占据场景的 1/4),然后撤消该变换以缩放创建的矩形在场景中正确适合矩形 A?
我可以做所有这些蛮力,但我想知道是否有办法使用 Qt 的内置类...
【问题讨论】:
【参考方案1】:在查看了一些示例以尝试找到类似的用途后,我意识到我完全没有抓住重点 - 我可以直接将 A/A1 设置到场景中,然后缩放 视图(通过直到现在 QGraphicsView::fitInView(..)) 完全明显但不知何故被完全忽略以适应里面的矩形。无需进行矩形变换。总“呃”的时刻。 :)
在与视图交互时,我需要转换鼠标点击和视图中的点,但是有一整套很好的 mapTo* mapFrom* 可以很好地处理这个问题。
TL;DR - 使用 fitInView()
【讨论】:
感谢您的提示!这让我发疯了以上是关于Qt - 使用 QTransform(或类似的),将内部 QRect 缩放到 QGraphics/从 QGraphics的主要内容,如果未能解决你的问题,请参考以下文章