缩放后QT调整大小问题

| 我正在尝试使用QT和C ++放大图片。 我在类中继承了QLabel对象以显示图片。并将此QLabels放在mdiarea中。 缩放功能工作正常,但是qlabel不会立即更新其大小。如果我尝试手动调整大小(使用光标),程序将自动处理它并根据需要调整qlabel的大小。 如何立即更新尺寸。 感谢帮助。 :)
bool MdiChild::event ( QEvent * e ){
    //qDebug(\"asd1\");
if(e->type() == QEvent::Wheel){
    int numDegrees = ((QWheelEvent*) e)->delta() / 8;
    double numSteps = (double)numDegrees/150;
    int w = pix->width();
    int h = pix->height();
    ratio += numSteps;
    qDebug(\"ratio = %f\", ratio);
    QPixmap* p = new QPixmap(pix->scaledToHeight ( (int)(h * ratio),Qt::FastTransformation  ));
    setPixmap(*p);
    adjustSize();
    adjustSize();
    update();

}
return QWidget::event(e);

 } 
问题已解决,但我想我无法回答自己的问题。 当我将相同事件添加到父窗口时,问题解决了。但是,当我最大化窗口时,内部对象也发生了事件并使崩溃的最大化窗口崩溃。
 bool ImageProcessor::event ( QEvent * e ){
if(e->type() == QEvent::Wheel){
    QList<QMdiSubWindow *> childList = ui.mdiArea->subWindowList();
    for(int i = 0; i<childList.count(); i++){
        childList[i]->adjustSize();
    }
}
return QWidget::event(e);
}     
已邀请:
        您需要一个QScrollArea来保存您的QLabel。否则,当窗口调整大小时,您的QLabel将没有滚动条。 查看示例,以了解如何创建图像查看器以及如何调整它们的大小。 ImageViewer示例 可缩放图片查看器     
        问题已解决,但我想我无法回答自己的问题。当我将相同事件添加到父窗口时,问题解决了。但是,当我最大化窗口时,内部对象也发生了事件并使崩溃的最大化窗口崩溃。
bool ImageProcessor::event ( QEvent * e ){
if(e->type() == QEvent::Wheel){
    QList<QMdiSubWindow *> childList = ui.mdiArea->subWindowList();
    for(int i = 0; i<childList.count(); i++){
        childList[i]->adjustSize();
    }
}
return QWidget::event(e);
}
    

要回复问题请先登录注册