Click here to Skip to main content
13,005,991 members (110,613 online)
Rate this:
 
Please Sign up or sign in to 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 18-Aug-12 15:42pm
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)

  Print Answers RSS
Top Experts
Last 24hrsThis month


Advertise | Privacy | Mobile
Web02 | 2.8.170628.1 | Last Updated 19 Aug 2012
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100