[英]Qt QGraphicsview how to hook to resize event
我们正在研究Qt C ++ Widget项目,最近遇到了麻烦。 我们是Qt新秀。
在我们的小部件上,有两个QGraphicsView
,它们需要在调整窗口大小时自动调整大小(我们已经完成了此操作),并将其中的内容相应地调整大小/适合/调整为...
因此,我们认为我们需要以某种方式挂接到onResizeEvent
或查找执行该操作的插槽。 但是我们在某种程度上迷失了如何去做。
PS:请原谅我的英语。
如果您有QWidget,则只需重新实现resizeEvent
函数。
void QWidget::resizeEvent ( QResizeEvent * event ) [virtual protected]
在Qt文档中,您可以找到完整代码示例的涂鸦示例: http : //doc.qt.io/qt-5/qtwidgets-widgets-scribble-example.html
或者,您可以安装事件处理程序并获取QEvent::Resize
。 此处介绍了如何安装事件过滤器: http : //qt-project.org/doc/qt-4.8/eventsandfilters.html
您可以使您的自定义类继承自QGraphicsView。 您应该在自定义QGraphicsView中重新实现resizeEvent(QResizeEvent * event),如下所示:
void MyView::resizeEvent(QResizeEvent *event)
{
fitInView(0, 0, 500, 500,Qt::KeepAspectRatio);
QGraphicsView::resizeEvent(event);
}
这样,视图将始终显示整个场景。 即,如果更改了窗口大小并且调整了graphicsView的大小,则场景将被缩放,并且您可以适当地看到所有内容。
如果要在某个插槽中调整大小,则可以使用sender()
。 顺便说一句,您始终可以使用调试器或日志/回溯获取此类信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.