2015-09-18 21 views
2

我是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"); 

回答

3

爲什麼不使用樣式表來顯示背景圖片?這樣你的文字將在圖像的頂部。

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

這兩個代碼都在工作,但嘿呦的建議是如此簡單 – shivcena

2

你可以把文本上打電話給你的標籤setPixmap()QImage(不QLabel),之後你的。嘗試這樣的:

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));