Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
See more: C++ QT
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 16:42pm
Edited 18-Aug-12 19:52pm
v3

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

  Print Answers RSS
0 OriginalGriff 7,903
1 Sergey Alexandrovich Kryukov 7,142
2 DamithSL 5,604
3 Manas Bhardwaj 4,986
4 Maciej Los 4,820


Advertise | Privacy | Mobile
Web01 | 2.8.1411023.1 | Last Updated 19 Aug 2012
Copyright © CodeProject, 1999-2014
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