Hacker News new | ask | show | jobs
by mercurial 3401 days ago
C++ is notoriously hard to bind. The only high-quality Qt bindings I know of are Python ones (Pyside).
4 comments

shameless plug for my Go binding: https://github.com/therecipe/qt it's still WIP though
A recent one: Lisp (ECL) with QML integration: https://gitlab.com/eql/EQL5/wikis/home (see QML link: direct Lisp function calls from QML, examples of QML generation from Lisp).
How did PyQt manage to solve this problem?
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.
Any tips you can give as far as starting to learn VTK, especially its Python bindings?
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.
What about PyQt5? Or does it work differently?
PyQt5 does not seem to be maintained. The last couple of times I checked it, it was pretty dead: one maintainer with no time.
I think you have this backwards. PyQt5 is well maintained by a company that produces a GPL version and sells a commercially licensed version, which was Qt's original business model. Pyside was originally created by Nokia back when Nokia bought Qt, re-licensed it as LGPL, and needed LGPL python bindings. It's no longer maintained and only works with Qt4. Pyside 2 is a port of pyside to Qt 5 that seems to have some level of activity, but no releases..
Templatize the language, toolkit version and that could just about describe every binding of every c++ toolkit ever made.
I think the Qt Company is trying to revive pyside, but they have a lot of catching up to do. Not sure if they plan to do an update on their bindings generator (Shiboken) too, or start from scratch on that front.
Yes, I actually do have this backwards .. in more than one way ..:P

Sorry, I was thinking of Lua for Qt5 .. That was silly!

And, it is a pity about PySide, it was a neat project. :(