在qt中实现图片的加载

(走了个弯路。用opencv显示qt图片。。。可以但没必要)

下面是常见的Qlabel加载图片

检测图片是否可以加载

QString filename = "C:\\Users\\Administrator\\Desktop\\1.png";
            QImage* img=new QImage;
            if(! ( img->load(filename) ) ) //加载图像
            {
                QMessageBox::information(this,
                                         tr("打开图像失败"),
                                         tr("打开图像失败!"));
                delete img;
                return;
            }

显示图片并利用setScaledContents(true)方法实现图片自适应label大小

ui->label_showImage->setPixmap(QPixmap::fromImage(*img));
ui->label_showImage->setScaledContents(true);

完整的mainwindow.cpp如下:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QString>
#include <QMessageBox>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QString filename = "C:\\Users\\Administrator\\Desktop\\6.png";
            QImage* img=new QImage;
            if(! ( img->load(filename) ) ) //加载图像
            {
                QMessageBox::information(this,
                                         tr("打开图像失败"),
                                         tr("打开图像失败!"));
                delete img;
                return;
            }
            ui->label_showImage->setPixmap(QPixmap::fromImage(*img));
            ui->label_showImage->setScaledContents(true);
}



MainWindow::~MainWindow()
{
    delete ui;
}

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Qt,我们可以使用QThread类来在一个独立的线程加载图片。首先,我们需要创建一个继承自QThread的自定义线程类,在该类重写run()方法。 在这个自定义线程类的run()方法,我们可以使用QImage类来读取图片文件。通过调用QImage的load()方法,我们可以加载图片并将其保存到一个QImage对象。 接下来,我们可以通过信号槽机制将加载完成的图片发送给主线程。我们可以在自定义线程类定义一个信号,例如loadImageCompleted(QImage),用于在加载完成后发出。 在主线程,我们可以创建一个实例化的自定义线程对象,并使用start()方法启动线程。然后,我们通过连接自定义线程对象的loadImageCompleted信号与主线程的一个槽函数,来接收加载完成的图片。 具体实现步骤如下: 1. 创建一个自定义线程类,继承自QThread。 2. 在自定义线程类重写run()方法,在其使用QImage的load()方法加载图片。 3. 定义一个信号,用于在加载完成后发出。 4. 在主线程创建自定义线程对象,并使用start()方法启动线程。 5. 使用connect()函数将自定义线程对象的信号与主线程的槽函数连接起来。 6. 在主线程的槽函数接收加载完成的图片,并进行相关处理。 这样,我们就可以在一个独立的线程加载图片,并将加载完成的图片传递给主线程进行后续处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值