Christian81 hat geschrieben:ein '#include *.moc' wird dir wohl auch hoffentlich einen Compiler-Fehler bringen...
Es scheint wohl eine gängige (leider undokumentierte) Praxis zu sein, wenn man Q_Objekt in einer *.cpp-Datei benutzen will. Hier mal ein
Beispiel aus einem Qt-Kurs, der Dozent möge mir verzeihen:
Code: Alles auswählen
// tst_unittesttesttest.cpp
#include <QString>
#include <QtTest>
class UnittesttestTest : public QObject
{
Q_OBJECT
public:
UnittesttestTest();
private Q_SLOTS:
void testCase1();
void testCase2();
void testCase3();
};
UnittesttestTest::UnittesttestTest()
{
}
void UnittesttestTest::testCase1()
{
QString input = "HaLlO";
QString expected = "hallo";
QVERIFY2(input.toLower() == expected, "Failure");
}
void UnittesttestTest::testCase2()
{
QList<int> list;
QBENCHMARK {
list << 10;
list.removeOne(10);
}
}
void UnittesttestTest::testCase3()
{
QList<int> list;
QBENCHMARK {
list << 10;
list.removeAll(10);
}
}
QTEST_APPLESS_MAIN(UnittesttestTest)
#include "tst_unittesttesttest.moc"
Hier wird eine "tst_unittesttesttest.moc" erzeugt. In meiem Beispiel (das ich leider nicht veröffentlichen darf) nicht.
Deshalb meine Frage:
Wann werden moc_*.cpp-Dateien erzeugt, und wann *.moc ? Oder woran kann es liegen, dass keine *.moc-Datei erzeugt wird?
Ich arbeite mit qmake im QtCreator.