Wie brauchbar ist Qt ohne seinen Vorverarbeitungsschritt?

 C Programming >> C-Programmierung >  >> Tags >> Qt
Wie brauchbar ist Qt ohne seinen Vorverarbeitungsschritt?

Qt erfordert nicht die Verwendung von moc, nur um es zu verwenden, es erfordert diese Verwendung, wenn Sie eine Unterklasse von QObject erstellen und Signale und Slots in Ihren benutzerdefinierten Klassen deklarieren.

Es ist nicht unvernünftig, moc bietet Funktionen, die C++ nicht hat, Signale/Slots, Selbstbeobachtung usw.

Um also etwas Minimal Fortgeschrittenes zu tun, MÜSSEN Sie den moc-Präprozessor verwenden. Entweder man liebt es oder man hasst es.


Es ist jetzt vollständig nutzbar. Der Betreuer von moc hat eine Alternative mit etwas ausführlicherer Syntax als gewöhnliches Qt entwickelt, aber es verwendet Standard-C++14, also gibt es keinen zusätzlichen Schritt.

Es heißt 'Grünspan'

(Nebenbei bemerkt, moc ist nicht wirklich ein Vorverarbeitungsschritt, sondern ein Codegenerator. Der Code, den Sie schreiben, ist gültiges C++, und moc ändert nichts daran. Es generiert nur zusätzlichen C++-Code für Sie.)


Ich halte es nicht für unangemessen, dass Qt ein spezielles Vorverarbeitungstool benötigt, wenn man bedenkt, wie groß und umfassend eine Bibliothek ist.

Andere ähnlich umfassende Bibliotheken wie Boost und GLib benötigen keine speziellen Vorverarbeitungswerkzeuge, sondern nutzen den Standard-C-Präprozessor umfassend. Qt hätte nur mit dem C-Präprozessor implementiert werden können, aber durch die Verwendung seines eigenen speziellen Vorverarbeitungstools kann es eine sauberere Syntax bereitstellen und viele der Fallstricke vermeiden, die mit C-Präprozessor-Makros verbunden sind.

Wie bereits beantwortet wurde, können Sie Qt ohne moc verwenden, nur nichts, was Signale und Slots erfordert. Ja, das schließt alle ein des GUI-Zeugs, aber Qt ist keineswegs nur eine GUI-Bibliothek.