如何在 QGraphicsView::Scale 之后调整 QGraphicsView 的大小

Posted

技术标签:

【中文标题】如何在 QGraphicsView::Scale 之后调整 QGraphicsView 的大小【英文标题】:How to resize a QGraphicsView after QGraphicsView::Scale 【发布时间】:2012-01-16 13:35:59 【问题描述】:

在调用 scale() 后是否有不可怕的方法来调整 QGraphicsView 的大小。

我的 QGraphicsView 嵌入在 QScrollArea 中。当我缩放时,我希望视图变大。

谢谢

【问题讨论】:

【参考方案1】:

QGraphicsView 本身继承自 QAbstractScrollArea。将其嵌入另一个 QScrollArea 会很奇怪,并且很可能是您的问题的根源。默认情况下,当您缩放比显示它的QGraphicsView 更大的QGraphicsScene 时,它将显示必要的滚动条。

【讨论】:

好的,但是对于一个小的 QGraphicsView,当我缩放时,我希望视图增长。现在只出现滚动条,视图保持其初始大小 哦,好的。嗯......你必须继承QGraphicsView 并重新实现一些功能。我的猜测是sizeHint,也可能是resizeEventviewportEvent。 sizeHint 将基于场景的 boundingRect。然后,嵌入它的布局可以让视图根据需要拥有更多空间。 顺便说一句,视图是否与窗口上的其他小部件竞争空间?即使渲染的场景较小,您是否有理由不希望它尽可能大? 它在 QFrame 的 Gridlayout 中。我没有看到任何可以阻止调整大小的东西 我试过 QGraphicsViewresize(scene->itemsBoundingRect() 没有任何反应:/

以上是关于如何在 QGraphicsView::Scale 之后调整 QGraphicsView 的大小的主要内容,如果未能解决你的问题,请参考以下文章

如何在图像中找到明亮区域(以及如何在图像中找到阴影区域)

在QGIS中如何添加天地图的WMTS

如何在表单提交后保留文本(如何在提交后不删除自身?)

如何在异步任务中调用意图?或者如何在 onPostExecute 中开始新的活动?

在 Avkit 中如何使用这三行代码,以及如何将音乐静音”

如何在 JDBC 中启动事务?