Qt 使用qgraphicsview和QGraphicscene和qopenglwidget自动调整大小
我正在尝试在主窗口中将QGraphicsView与QOpenGLWidget一起使用: 确切地: 我的QMainWindow包含一些布局和小部件。还有一个QGraphicsView(graphicsView类继承自QGraphicsView) 在“第二步”中,我创建一个QGraphicscene并添加一个openglwidget(OpenGLControl类继承自QOpenGLWidget)。在OpenGLControl中,我只为测试我的应用程序设置了回溯(glClearColor…) 现在我的请求是,当我更改主窗口的大小时,我也想更改QGraphicsView、Qgraphicscene和QOpenGLWidget的大小。我在graphicsView中尝试了resizeEvent,但没有成功 主窗口(.cpp)的实现: 以及我对resizeEvent的尝试:Qt 使用qgraphicsview和QGraphicscene和qopenglwidget自动调整大小,qt,opengl,qgraphicsview,Qt,Opengl,Qgraphicsview,我正在尝试在主窗口中将QGraphicsView与QOpenGLWidget一起使用: 确切地: 我的QMainWindow包含一些布局和小部件。还有一个QGraphicsView(graphicsView类继承自QGraphicsView) 在“第二步”中,我创建一个QGraphicscene并添加一个openglwidget(OpenGLControl类继承自QOpenGLWidget)。在OpenGLControl中,我只为测试我的应用程序设置了回溯(glClearColor…) 现在我的
void graphicsView::resizeEvent(QResizeEvent *event)
{
if(scene())
scene()->setSceneRect(QRect(QPoint(0,0), event->size()));
QGraphicsView::resizeEvent(event);
}
最后,主窗口(调整大小)的屏幕截图(QOpenGLWidget(蓝色背景)比QGraphicsView小)
有我可以使用的信号吗?或者有人能帮我另一个方法吗?
谢谢你如果你认为代码> QGraphicsScene <代码>是一个世界,其中对象(<代码> qGraceSITEM> <代码> qGrICICS对象< /代码>)驻留,<代码> qGraceCsVIEW/COD>是进入那个世界的窗口,为什么你要调整场景的大小?这在逻辑上是没有意义的。我解决了这个问题:一方面,我向graphicsView sizeChanged事件添加了一个改变OpenGLWidget的信号。另一方面,Graphicscene的大小随着GraphicsView的增加而增加,但从不缩小。所以我也需要在szene的de graphicsView sizeChanged事件中发出信号。
void graphicsView::resizeEvent(QResizeEvent *event)
{
if(scene())
scene()->setSceneRect(QRect(QPoint(0,0), event->size()));
QGraphicsView::resizeEvent(event);
}