Matthias Ettrich has posted a defence of Qt's macros in which he claims that on certain discussion fora like OSNews, "even the most verbal critics are finally running out of arguments", and the only one left is the addition of introspection to C++ through the use of macros like "signals", "slots", "emit" and so on:
The complaint comes from people that prefer other languages, and consequently they dislike Qt for making the life of C++ programmers easier. We wrote Qt, we know it is not a “pure” C++ framework, just like C++ is not a “pure” language. Qt makes use of the C-subset of C++, including the preprocessor. And it makes very good use of it. What made C++ the most successful programming language on the planet is its pragmatic design, and its compatibility with C. It’s a meta language, a language powerful enough to be extended to something as beautiful and easy to work with as Qt.