How usable is Qt without its preprocessing step?
Solution 1:
Qt doesn't require the use of moc just to use it, it requires that usage if you create a subclass of QObject, and to declare signals and slots in your custom classes.
It's not unreasonable, moc provides features that C++ doesn't have, signals/slots, introspection, etc.
So, to do something minimally advanced, you WILL have to use the moc preprocessor. You either love it, or hate it.
Solution 2:
It's completely usable now. The maintainer of moc has made an alternative with slightly more verbose syntax than ordinary Qt, but it uses standard C++14 so there's no extra step.
It's called 'Verdigris'
(as an aside, moc isn't really a preprocessing step so much as a code generator. The code you write is valid C++, and moc doesn't change any of it. It just generates extra C++ code for you.)