我是Qt编程的新手,我正在开发一个绘图应用程序。我有一个班级MyWidget
,其成员QGraphicsView
。 MyWidget
是另一个类MainWidget
的成员(它还有其他小部件,所有这些小部件都在布局中).MainWidget是我的QMainWindow
子类的中心小部件。
我创建了使用鼠标滚轮事件缩放视图的功能以及拖动场景的功能。
问题是 - 我想将场景的大小设置为固定,并且是视图大小的3倍,但由于视图由布局管理以便占用尽可能多的空间我可以'得到视图的大小?
任何帮助表示感谢。
答案 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
有关完整示例,请查看:
答案 1 :(得分:0)
你绝对可以获得视图的大小。有两种方法可以解决这个问题:
将事件过滤器对象附加到您的视图:myView->installEventFilter(filterObject)
。对于到达您观看的所有事件,将调用filterObject
的{{1}}方法,包括调整大小事件。
使用自定义视图类并重新实现eventFilter
。每次调整窗口小部件时都会调用此方法。请注意,设计器允许您添加自定义类,而无需编写插件。