Click here to Skip to main content
15,881,793 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
I am developing a simple painting tool using Qt. For that I modified Qt's scribble code to draw text on an image. I can draw text on a normal jpg image using the below code. But when I load a big image(high resolution image), The text overlaps each other. I tried several technique but not get a perfect result

Code

QPainter painter(&image);

   painter.setPen(m_myPenColor);//(QPen(m_myPenColor, myPenWidth,
   painter.setBrush(QBrush(m_myPenColor));

   painter.setFont(m_myFont );

   QFontMetricsF fm(m_myFont);
   qreal pixelsHigh = fm.height();
   qreal pixelwidthMil = fm.width("First Text");
   qreal pixelwidthMm = fm.width("Second Text");
   qreal pixelWidthMax= (pixelwidthMil>=pixelwidthMm)?pixelwidthMil:pixelwidthMm;
   int iX=0,iY=0;
   iX = endPoint.x();

   iY = endPoint.y()+(int)pixelsHigh;

   painter.drawText(iX+2, iY, "First Text");
   iY = iY + (int)pixelsHigh+1;
   painter.drawText(iX+2, iY, "Second Text");

   pixelsHigh = (pixelsHigh*2)+6;

   pixelWidthMax = pixelWidthMax+6;
   update(endPoint.x()-2, endPoint.y()-2, (int)pixelWidthMax,(int)pixelsHigh);
Posted
Updated 18-Aug-12 18:52pm
v3

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900