我正在用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);
}