看了很多网上是文字大部分都是继承QLabel写一个类,但是如果小型项目没有必要写一个类,就可以写一个函数,或者直接在鼠标事件mousePressEvent、mouseReleaseEvent、mouseMoveEvent直接去实现,另外有些在更改后没有调用

ui->Label->setPixmap(pix)这个语句,因此无法实时更新到窗口。 

void Dialog::myfunction()
{    
    // 加载图片到窗口
    QPixmap pix;
    QString pixFileName = QCoreApplication::applicationDirPath() + QString("test.jpg");//加载你自己的图片
    pix.load(pixFileName );
    pix = pix.scaled(ui->Label->width(), ui->Label->height());//图片缩放和Label大小一致
    ui->Label->setPixmap(pix);

//在图片上绘制你自己的东西,不一定是像我一样填充
    QPainter painter(&pix);
    QBrush brush(QColor(58,164,47));
    painter.setBrush(brush);
    painter.fillRect(0,0,pix.width()/2,pix.height()/2, brush);
    ui->Label->setPixmap(pix);//这行一定要有,不然不会实时更新到窗口
    pix.save(pixFileName );//图片保存
}

Qt 加载图片到QLabel上并进行画图

以上提供一种方法,欢迎大家讨论,发现更多的方法

相关文章: