On Thu, 28 Mar 2013 12:10:37 +0100, Vincent Vande Vyvre <vincent.vandevy...@swing.be> wrote: > Hi, > > I need to check the proximity of two QPointF for implement a snap grid > behaviour, but the comparison of the two points is inexact or fail with > Python3. > > Platform Linux-3.2.0-39-generic-x86_64-with-Ubuntu-12.04-precise > Python 2.7.3 > Qt 4.8.1 > PyQt 4.9.1 > Sip 4.13.2 > > >>> from PyQt4 import QtCore > >>> QtCore.QPointF(172.0, 106.0) < QtCore.QPointF(5.0, 5.0) > True > >>> QtCore.QPointF(5.0, 5.0) < QtCore.QPointF(172.0, 106.0) > False > >>> QtCore.QPointF(-5.0, -5.0) < QtCore.QPointF(172.0, 106.0) > True > >>> QtCore.QPointF(5.0, 5.0) < QtCore.QPointF(-172.0, -106.0) > False > >>> QtCore.QPointF(172.0, 106.0) > QtCore.QPointF(5.0, 5.0) > False > >>> QtCore.QPointF(172.0, 106.0) == QtCore.QPointF(172.0, 106.0) > True > > ------------------------------------------------------------- > Python 3.2.3 > Qt 4.8.1 > PyQt 4.9.1 > Sip 4.13.2 > > >>> from PyQt4 import QtCore > >>> QtCore.QPointF(5.0, 5.0) < QtCore.QPointF(172.0, 106.0) > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > TypeError: unorderable types: QPointF() < QPointF() > >>> QtCore.QPointF(167.0, 101.0) == QtCore.QPointF(167.0, 101.0) > True > >>> QtCore.QPointF(167.0, 101.0) <= QtCore.QPointF(167.0, 101.0) > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > TypeError: unorderable types: QPointF() <= QPointF()
QPointF doesn't support the comparison you are trying to do. In Python2 this falls back to a (useless) pointer comparison. In Python3 this (correctly) raises an exception. Phil _______________________________________________ PyQt mailing list PyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt