看了很多网上是文字大部分都是继承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 );//图片保存
}
以上提供一种方法,欢迎大家讨论,发现更多的方法