[PyQt] Method overloading with nested lists in PyQt5

Matthias Kuhn matthias at opengis.ch
Fri May 13 15:05:16 BST 2016


While updating to PyQt5 (and python3) I am experiencing an issue with
overloaded methods where one overload takes a list of items and another
overload takes a list of a list of items.

When called with a list of a list of items, a TypeError is produced
warning that "index 0 has type 'list' but 'item' is expected.

It seems that the first overload for a "list of something" is found and
when "something" doesn't match, no different list overloads are tried
which might still be of type "list of something else".

This works fine with PyQt4. Does this ring a bell for someone?

Here a short (handwritten) example of the situation.



class Point
  double x;
  double y;

typedef QVector<Point> Line;
typedef QVector<Line> Polygon; // Can contain multiple rings for holes

class Geometry
  static bool compare(const Point&, const Point&); // Point
  static bool compare(const Line&, const Line&); // QVector<Point>
  static bool compare(const Polygon&, const Polygon&); //
QVector<QVector<Point> >

>> Geometry.compare( [[Point(1,1), Point(2,2,)]], [[Point(1,1),
Point(2,2)]] )
TypeError: index 0 has type 'list' but 'Point' is expected

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.riverbankcomputing.com/pipermail/pyqt/attachments/20160513/d70c7dff/attachment.html>

More information about the PyQt mailing list