4 ms·
Is Qt C++? AFAIK it has some sort of custom preprocessor, does it work with a naive vanilla C++ compiler?
by GoblinSlayer 5y ago
Is Qt C++? AFAIK it has some sort of custom preprocessor, does it work with a naive vanilla C++ compiler?
- throwaway2037 5y agoIt is called the Meta Object Compiler (moc). You can read more about it here: https://doc.qt.io/qt-6/why-moc.html 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.
- GoblinSlayer 5y agoSo Qt doesn't work without moc, right?
- throwaway2037 5y agoNo, it is possible to hand code everything that moc generates.
- GoblinSlayer 5y agoAnd PyQt generates that metadata to make signals work?
- p_l 5y agoIt 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.
- throwaway2037 5y agoPyQt and PySide (both Python libraries that allow you to use Qt libraries) do not required you to use 'moc'.