如何让QGraphicsView的大小与图片和主窗口的大小一致?

问题描述 投票:0回答:1

我正在用Qt开发一个图形编辑器,并使用

QGraphicsView
来显示图片,需要调整其大小,使其与图像和主窗口的大小一致。

以下方法在我打开图像时调整图像大小:

//ui here is Ui::MainWindow* pointer
ui->graphicsView->resize(picture->width, picture->height); 

小图片看起来很正常,但是当我打开大图片时,它的大小就超过了窗口的大小,并且无法滚动。

我可以将

graphicsView
的大小设置为图片和主窗口大小的最大值,但这并不能解决问题,因为当我将主窗口变小时,图片将保持其大小并且将比窗口大,所以我想在调整主窗口大小时需要调整图像大小。

我知道Qt中有信号和槽的系统,但是我找不到

QMainWindow
合适的槽。

如何捕捉主窗口大小的变化来调整

graphicsView
的大小?

c++ qt qt5 qgraphicsview
1个回答
0
投票

只需重写 QMainWindow

 中的 
resizeEvent

()

const QSize &QResizeEvent::size() const

返回小部件的新大小。

void MyMainWindow::resizeEvent(QResizeEvent* event)
{
   // ui->graphicsView->resize(event->size());
   QMainWindow::resizeEvent(event);
}
© www.soinside.com 2019 - 2024. All rights reserved.