0

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

我创建了使用鼠标滚轮事件缩放视图的函数和拖动场景的函数。

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

任何帮助表示赞赏。

4

2 回答 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

于 2013-10-14T12:25:53.537 回答
0

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

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

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

于 2013-10-14T12:28:00.587 回答