On Wed, 16 Sep 2009 20:04:48 +0100, Jeremy Sanders
<jer...@jeremysanders.net> wrote:
> Hi - for some reason the following code does not produce the 
> correct answer after updating PyQt.
> 
> On Ubuntu with the PyQt 4.4.4 package the following returns 
> 18.0
> 
> from PyQt4.QtGui import *
> from PyQt4.QtCore import *
> import sys
> 
> app = QApplication(sys.argv)
> 
> pix = QPixmap(128, 128)
> p = QPainter(pix)
> font = QFont("Times New Roman", 20)
> 
> fm = QFontMetricsF(font, p.device())
> print fm.boundingRect(QChar('0')).height()
> 
> On the same system with the same Qt (4.5.0), PyQt-x11-
> gpl-4.6-snapshot-20090906 and returns 32.0!
> 
> The text is misaligned when using height to align it using 
> the snapshot.
> 
> My guess is that the QChar is being promoted to QString. This 
> function returns a different result for QString, so it breaks 
> my code. The QString version returns the font height, not the 
> height of the character given.

Your guess is correct.

You could use tightBoundingRect() instead.

I can back out the automatic conversion from QChar to QString, but that
leaves the question of what should happen with v2 of the QString API, ie.
should QChar not be dropped?

Phil
_______________________________________________
PyQt mailing list    PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt

Reply via email to