如何获得布局中的QGraphicsView的大小?

问题描述 投票:0回答:2

我是Qt编程的新手,我正在开发一个绘图应用程序。我有一个类MyWidget有一个成员QGraphicsViewMyWidget是另一个类MainWidget的成员(它还有其他小部件,所有这些都在布局中).MainWidget是我的QMainWindow子类的中心小部件。

我创建了使用鼠标滚轮事件缩放视图的功能以及拖动场景的功能。

问题是 - 我想将场景的大小设置为固定,并且是视图大小的3倍,但由于视图由布局管理以便占用尽可能多的空间我无法获得查看大小?

任何帮助赞赏。

qt qgraphicsview qgraphicsscene
2个回答
0
投票

size属性将为您提供窗口小部件的当前大小:

http://qt-project.org/doc/qt-4.8/qwidget.html#size-prop

或者,您可以继承QGraphicsView并重新实现resizeEvent

http://qt-project.org/doc/qt-4.8/qwidget.html#resizeEvent

有关完整示例,请查看:

http://qt-project.org/doc/qt-4.8/widgets-scribble.html


0
投票

你绝对可以获得视图的大小。有两种方法可以解决它:

  1. 将事件过滤器对象附加到视图:myView->installEventFilter(filterObject)filterObjecteventFilter方法将被用于所有到达您视图的事件,包括调整大小事件。
  2. 使用自定义视图类并重新实现resizeEvent。每次调整窗口小部件时都会调用此方法。请注意,设计器允许您添加自定义类,而无需编写插件。
© www.soinside.com 2019 - 2024. All rights reserved.