Qt最大化窗口后缩放图像

时间:2014-08-14 13:26:50

标签: c++ qt events qt4

我想根据qgraphicsview的大小更改图像比例。

如果窗口已调整大小,我当前的代码会缩放图像,但如果窗口最大化则不会缩放。

bool EnlargedView::eventFilter(QObject *object, QEvent *event)
{
    if (ui.graphicsView == object && (event->type() == QEvent::WindowStateChange || event->type() == QEvent::Resize)) {
        scalePicture();
    }
    return QWidget::eventFilter(object, event);
}

我认为这是因为在单击最大化按钮时调用事件WindowStateChange,而不是在窗口最大化之后(稍后发生)。

任何想法,如何在最大化后缩放图像?

1 个答案:

答案 0 :(得分:1)

使用QWidget :: resizeEvent http://qt-project.org/doc/qt-4.8/qwidget.html#resizeEvent

在设置新几何体后调用它,这样您就可以使用正确的几何体来缩放。