使用Qpaint在图片上写文字

时间:2021-05-02 16:54:19

开发过程中需要实现在图片上叠加文字,可以采用Qpaint在图片上写文字,然后将图片显示在上面。再将Qlabel加到Qwidget中。效果如下

使用Qpaint在图片上写文字

//创建对象,加载图片

QPixmap pix;

pix.load(":/alarmLevel/image/alarmLevel/alarmLevel_H.png");

//创建绘画对象

QPainter painter(&pix);

painter.begin(&pix);

painter.setPen(Qt::white);

//设置字体大小

QFont font = painter.font();

font.setPixelSize(12);//改变字体大小

font.setFamily("Microsoft YaHei");

painter.setFont(font);

//将文字写在图片上

painter.drawText(pix.rect(), Qt::AlignCenter, tr(strLevel.c_str()));

QLabel* pLevelLable=new QLabel;

pLevelLable->setPixmap(pix);