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

时间:2013-10-14 12:04:13

标签: qt qgraphicsview qgraphicsscene

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

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

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

任何帮助表示感谢。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

  1. 将事件过滤器对象附加到您的视图:myView->installEventFilter(filterObject)。对于到达您观看的所有事件,将调用filterObject的{​​{1}}方法,包括调整大小事件。

  2. 使用自定义视图类并重新实现eventFilter。每次调整窗口小部件时都会调用此方法。请注意,设计器允许您添加自定义类,而无需编写插件。