我正在用Qt开发一个图形编辑器,并使用QGraphicsView
来显示图片,并且需要调整它的大小,使其与图像和主窗口的大小一致。
当我打开图像时,下面的方法可以调整图像的大小:
//ui here is Ui::MainWindow* pointer
ui->graphicsView->resize(picture->width, picture->height);
小图片看起来正常,但是当我打开一张大图片时,它的大小变得比窗口的大小还大,我无法滚动它。
我可以将graphicsView
的大小设置为图片和主窗口大小的最大值,但这并不能解决问题,因为当我将主窗口变小时,图片将保持其大小并将比窗口大,所以我认为我需要在调整主窗口大小时调整图像大小。
我知道Qt中有信号和插槽系统,但是我找不到合适的QMainWindow
插槽。
如何抓住主窗口大小的变化来调整graphicsView
的大小?
在QMainWindow
中重写resizeEvent()
const QSize &QResizeEvent::size() const
返回小部件的新大小。
void MyMainWindow::resizeEvent(QResizeEvent* event)
{
// ui->graphicsView->resize(event->size());
QMainWindow::resizeEvent(event);
}