在qlabel中将图像设置为背景和文本

时间:2018-12-24 12:50:18

标签: c++ qt qwidget qlabel

  1. 我有一个比例为45x45的PNG文件
  2. 我有270x30像素比例的Qlabel

我想要的是动态地将PNG文件作为背景和文本插入。

文本长度可能会从大变小,反之亦然, 适当地,我们的图片会根据文字进行更改,并使文字适应图片内部的平均柔韧性图片

QPixmap pixmapTarget = QPixmap(":/.png");
pixmapTarget = pixmapTarget.scaled(250, 27, Qt::IgnoreAspectRatio , Qt::SmoothTransformation);
ui->lable_1->setIcon(pixmapTarget);

但是不要在图像中插入文本,以及如何使文本变得灵活。

1 个答案:

答案 0 :(得分:0)

QLabel可以包含 文本图像。不能同时使用。如果您想将图像作为文本的背景,则需要使用QTextView并将文本和背景图像设置为富文本格式,将两个QLabel实例彼此重叠,图像作为底部,或实现自己的自定义QWidget。后者可以通过多种方式完成,包括将QLabel子类化为paintEvent中的对象,首先渲染背景图像(有关如何绘制QImage或更好的方法,请参见QPainter的文档,QPixmap),然后调用paintEvent的基本实现来渲染文本。