QT6 c++ 实现控件显示图像时,不能填充全部[已解决]

方法一:方案 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);

    // 你原有所有初始化代码不变
}