[英]Qt | QPixmap scaling incorrectly
您正在从窗口小部件读取当前像素图,对其进行缩放,然后将缩放后的像素图写入窗口小部件。 请考虑一下,如果小部件变得非常小,然后将其调整为更大的尺寸会发生什么—由于使用了缩放转换,因此会出现很多工件。
我认为更好的方法是将原始的全尺寸图像存储在MainWindow类的成员中,例如...
QPixmap m_original_pixmap;
然后在您的resizeEvent成员中使用该版本的缩放版本...
void MainWindow::resizeEvent(QResizeEvent *)
{
QPixmap pix = m_original_pixmap.scaled(ui->labelImage->size(), Qt::KeepAspectRatio);
ui->labelImage->setPixmap(pix);
}
不确定是否可以清除所有内容,但是应该采取某种方法来删除一些工件。
附带说明一下,如果您担心图像质量,可以考虑在缩放操作中将Qt :: SmoothTransformation指定为像素图转换模式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.