我是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");
答案 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\");}"));