如何在Qt中显示文本?

时间:2015-09-18 08:32:57

标签: c++ qt

我是Qt的新手,我有一个带有背景图片的标签。背景图像显示正常,但无法在图像上显示。怎么做?引导我。请参阅下面的代码我的实施方式:

QImage image("sample.bmp");
myLabel->setPixmap(QPixmap::fromImage(image));
myLabel->setGeometry(10,10,78,78);

我尝试使用QPalette来显示文字,但如果我使用QPalette只显示文字,则图片不会显示。我用这种方式试了QPalette

QPalette sample_palette;
sample_palette.setColor(QPalette::Window, Qt::white);
sample_palette.setColor(QPalette::WindowText, Qt::blue);

myLabel->setAutoFillBackground(true);
myLabel->setPalette(sample_palette);
myLabel->setText("What ever text");

2 个答案:

答案 0 :(得分:3)

您可以在QImage上(而不是QLabel)上添加文字,然后在其上标注您标签的setPixmap()。尝试这样的事情:

QImage image("sample.bmp");
QPainter p(&image);
p.setPen(QPen(Qt::red));
p.setFont(QFont("Times", 12, QFont::Bold));
p.drawText(image.rect(), Qt::AlignCenter, "Text");
myLabel->setPixmap(QPixmap::fromImage(image));

答案 1 :(得分:3)

为什么不使用样式表来显示背景图像?这样,您的文字就会出现在图片的顶部。

ui->label->setStyleSheet(QString("QLabel {background-image: url(\"img.jpg\");}"));