Hacker News new | past | comments | ask | show | jobs | submit login

You wrote: <<QT was an ecosystem shock to me. I barely knew what to do to get started and got lost easily.>> This is surprising to me. It is the gold standard for cross-platform desktop applications. (Readers: Please note that I used "cross-platform" and "desktop" _together_. Yes, I know there are plenty of other GUI frameworks that cover other categories.) The amount of official and unofficial documentation, code samples, and Q&A for Qt is simply mind boggling. Did you not find these docs helpful? Or maybe you do not like C++? Lots of people also use PyQt (or variants) with Python and get along quite well.

Also, if Qt isn't good for you, what else did you try? My experience with GTK+ was awful -- bizarre API and terrible docs. Further, the community was unhelpful and borderline trollish. This was well-documented by the "Subsurface" team (SCUBA diving software) during their transition from GTK+ to Qt.




More like C++ hates everyone except for C++ compilers.


FYI: Qt is rather ancient C++ by now.


Yes, the code base is very old, about 25 years. However, it is constantly upgraded. The most recent version, Qt 6, supports C++ 17.


Is Qt C++? AFAIK it has some sort of custom preprocessor, does it work with a naive vanilla C++ compiler?


It is called the Meta Object Compiler (moc). You can read more about it here: https://doc.qt.io/qt-6/why-moc.html

It parses your C++ headers to generate helpful metadata used for runtime reflection and slot-and-signals. All the generated code is C++.

The latest versions of CMake support moc out of the box, so developers hardly notice the moc step.


So Qt doesn't work without moc, right?


It used to be much more involved in the past. Of course you could hand write the code, but as it was originally I believe a preprocessor was the only way to sensibly write signal support, something that AFAIK stopped being true around 2003 but by then moc was entrenched.


PyQt and PySide (both Python libraries that allow you to use Qt libraries) do not required you to use 'moc'.


No, it is possible to hand code everything that moc generates.


And PyQt generates that metadata to make signals work?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: