2010-11-24 22 views
2

私はQPainterが使用されていると信じていますが、2つを組み合わせる方法を理解できません。Qt - QLabel Imageの上にテキストを設定する方法

QLabel* imageLabel = new QLabel(); 
QImage image("c://image.png"); 
imageLabel->setPixmap(QPixmap::fromImage(image)); 
imageLabel->setAlignment(Qt::AlignCenter); 

QPainter* painter = new QPainter(); 
painter->setPen(Qt::blue); 
painter->setFont(QFont("Arial", 30)); 
painter->drawText(rect(), Qt::AlignCenter, "Text on Image"); 

答えて

6

あなたはどこ描画する画家に指示する必要があります:

QImage image("c://image.png"); 

// tell the painter to draw on the QImage 
QPainter* painter = new QPainter(&image); // sorry i forgot the "&" 
painter->setPen(Qt::blue); 
painter->setFont(QFont("Arial", 30)); 
// you probably want the to draw the text to the rect of the image 
painter->drawText(image.rect(), Qt::AlignCenter, "Text on Image"); 

QLabel* imageLabel = new QLabel(); 
imageLabel->setPixmap(QPixmap::fromImage(image)); 
imageLabel->setAlignment(Qt::AlignCenter); 
+0

、これは動作しません。 「QPainterの:: QPainterの(QImageの&)への呼び出しに該当する機能は、」 –

+0

候補者はQPainterの:: QPainterの(QPaintDevice *)...コンストラクタは、ポインタを期待してませんので、あなたは、コンストラクタに画像のアドレスを与える必要があります。 – bjoernz

+0

ああ、私は別のことをしていた...間違って...。ありがとう! –

関連する問題