首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QGraphicsView将场景缩放为全宽

QGraphicsView将场景缩放为全宽
EN

Stack Overflow用户
提问于 2011-09-24 19:27:34
回答 2查看 8.4K关注 0票数 3

我继承了QGraphicsView,并在我的布局中显示了这个小部件。在视图中,我自然有QGraphicsScene。

我可以很好地检索QGraphicsScene大小(即像我设置的2100x2970 ),但是QGraphicsView小部件的几何形状是不正确的。每当我调整主窗口的大小时,布局都会发生变化,视图小部件也会发生变化。当然,QGraphicsScene的大小是无关紧要的,无论它是什么,都保持不变。但是通过视口显示滚动条和场景的小部件并没有为我提供正确的小部件宽度和高度。

在QtDesigner中,QGraphicsView小部件的QWidget几何尺寸为1126x643。但是我永远不能在子类化的QGraphicsView类中检索这些值。

当我知道宽度(调整主窗口大小时为1126或其他值)时,我可以计算视图的比例因子(比例因子=1126/ 2100),以使场景覆盖视图小部件的整个宽度。

在QGraphicsView中:

代码语言:javascript
复制
qDebug("scene: %f %f", scene()->width(), scene()->height()); // works (2100x2970)
qDebug("geo: %f %f", geometry().width(), geometry().height()); // does not (0x2970)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-25 00:03:33

你看过QGraphicsView::fitInView()吗?此方法将自动为您执行所需的比例计算。

票数 6
EN

Stack Overflow用户

发布于 2011-09-24 21:13:52

显然,当在qDebug中使用错误的格式时,输出是不可预测的。使用时:

代码语言:javascript
复制
qDebug("geo: %i %i", geometry().width(), geometry().height());

实际上,显示了正确的大小。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7538703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档