PyQt has a whole other project, called sip, in service to it. If I understand it correctly, sip generates the bindings semi-automatically with a lot of special cases for Qt. Compared to the other set of Python C++ library bindings I've used (Vtk), they're magnificent.
My experience is with maintaining somebody else's code, so I learned by cutting myself on its sharp edges. My advice is to avoid if possible. Unlike Qt, you can't subclass Vtk objects in Python. Which is a huge pain, because the Vtk design is heavily object-oriented. The autogenerated documentation is pretty unhelpful. It looks like this: http://www.vtk.org/doc/nightly/html/classvtkSliderWidget.htm.... Compare that with the magnificent Qt documentation: http://doc.qt.io/qt-5/qslider.html, and you'll see why I prefer working with Qt.