QT一些操作,类型转换,QLabel显示图片(自适应)

1、格式化字符串:

str.sprintf("%s_第%d帧_第%d个",filePath.toUtf8().data(),fame,i);//中文%s和%d同时出现
str.arg(%1%2).arg(str).arg(int)

2、QString -->Char

QString("hello").toStdString.c_str

3、QString-->Char*

char* ch
QByteArray ba = QString("hello").toLatin1();
ch=ba.data();

4、QLabel显示图片(充满)

QImage img=load("filePath");
//设定图像大小自适应label窗口的大小
img = img.scaled(ui->label_ImgContainer->size(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
ui->label->setPixmap(QPixmap::fromImage(img));

5、QLabel按原比例显示图片

void showImage(cv::Mat img,QLabel *labelID)
{
    int imgWidth=img.cols;
    int imgHeight=img.rows;
    int labelWidth=labelID->width();
    int labelHeight=labelID->height();
    double widthRate=(double)labelWidth/(double)imgWidth;
    double heightRate=(double)labelHeight/(double)imgHeight;
    if(widthRate<=heightRate)
    {
        QPixmap qimg=cvMatToQPixmap(img);
        qimg = qimg.scaled(QSize(labelWidth,(int)imgHeight*heightRate), Qt::KeepAspectRatio);
        labelID->setAlignment(Qt::AlignCenter);
        labelID->setPixmap(qimg);
    }
    else
    {
        QPixmap qimg=cvMatToQPixmap(img);
        qimg = qimg.scaled(QSize((int)imgWidth*widthRate,labelHeight), Qt::KeepAspectRatio);
        labelID->setAlignment(Qt::AlignCenter);
        labelID->setPixmap(qimg);
    }
}


  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值