On Thu, 17 Sep 2009 11:39:09 +0100, Mark Summerfield <[email protected]> wrote: > On 2009-09-16, Phil Thompson wrote: >> On Wed, 16 Sep 2009 20:04:48 +0100, Jeremy Sanders >> >> <[email protected]> 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? > > I think it would be a pity to keep it. Most of its methods are available > in Python anyway, and for those few that aren't couldn't you provide > some static methods that either take a one character string or that only > consider the first character?
Do you want to go through the whole API and tell me the functions that behave slightly differently given a QChar rather than a QString of length one? I don't have a problem with keeping it - it is a very specialised class and you'd only use it if you really needed to. Phil _______________________________________________ PyQt mailing list [email protected] http://www.riverbankcomputing.com/mailman/listinfo/pyqt
