方法一:方案 1:拉伸填满(变形,无黑边)直接替换为:
ui->labelMergeResult->setPixmap(
QPixmap::fromImage(resImg).scaled(
ui->labelMergeResult->size(),
Qt::IgnoreAspectRatio, // 忽略比例,强制拉伸填满控件
Qt::SmoothTransformation
)
);
方法二:方案 2:等比例铺满、裁切黑边(不变形,推荐视觉检测)
QPixmap pix = QPixmap::fromImage(resImg);
// 等比例放大铺满,超出部分裁掉
pix = pix.scaled(ui->labelMergeResult->size(), Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation);
// 裁剪到Label尺寸,完全填满无黑边
pix = pix.copy(0,0, ui->labelMergeResult->width(), ui->labelMergeResult->height());
ui->labelMergeResult->setPixmap(pix);
方法三:
构造函数统一初始化属性(防止运行后失效)
MainWindow 构造函数添加一行,强制开启自动缩放:
MainWindow 构造函数添加一行,强制开启自动缩放:
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
// 新增:拼接显示Label开启自动缩放
ui->labelMergeResult->setScaledContents(true);
// 你原有所有初始化代码不变
}