Frage

In den Tutorials für QTestLib gibt es Verweise auf die Dateien „testgui.moc“ und „testqstring.moc“ (ein Beispiel finden Sie hier: http://www.englishbreakfastnetwork.org/coverage/build/qt-copy/examples /qtestlib/tutorial3/.moc/debug-shared/testgui.moc ). Dazu gehören verschiedene Informationen erforderlich, um die Tests zu konfigurieren. Leider erklären die Tutorials nicht, was diese Information ist oder wie es zu ändern. Insbesondere beziehe ich mich auf diese Zeilen:

static const uint qt_meta_data_TestQString[] = {

 // content:
       2,       // revision
       0,       // classname
       0,    0, // classinfo
       2,   12, // methods
       0,    0, // properties
       0,    0, // enums/sets
       0,    0, // constructors

 // slots: signature, parameters, type, tag, flags
      13,   12,   12,   12, 0x08,
      28,   12,   12,   12, 0x08,

       0        // eod
};

static const char qt_meta_stringdata_TestQString[] = {
    "TestQString\0\0toUpper_data()\0toUpper()\0"
};

Nun, basierend auf meinem Verständnis von QT, die qt_meta_stringdata_TestQString Variable ist die Klassenreferenz mit den Namen der Methoden angehängt - etwas, das durch etwas Linie METHOD(toUpper()) getan werden könnte, aber ich bin mir nicht sicher, ob und wie dies relevant für etwas anderes als Ergebnis Formatierung.

Ich möchte wissen, in der Regel, was los ist. Der Kommentar am Anfang der Dateien zur Verfügung gestellt, so dass es mit „Meta-Objekt-Code“ zu tun hat, und das scheint viel offensichtlich auf der Grundlage der Methoden, um es später außer Kraft setzt.

Noch wichtiger ist, aber ich möchte wissen, wie ich das qt_meta_data Array ändern kann, so dass es mir erlauben wird, mehr Funktionen aufzurufen und / oder lassen Sie mich oben auf Namen von unterschiedlicher Länge, die Funktionen neu benennen (Umschalten des Verfahrens Namen von toUpper zu toApple scheinen keine Probleme zu verursachen, sondern sie zu verändern, um toUpperCase oder toup beide bewirkt, dass die Testanwendung nicht wie erwartet ausgeführt werden).

***************************** UPDATE ***************** ***************

Es gibt bereits eine akzeptierte Antwort unten, aber ich dachte, dass ich diese hinzufügen soll: Der einzige Grund, die Dateien überhaupt in den Übungen waren war, weil die Tutorial Autoren entschieden NICHT .h und CPP-Dateien für ihre Klassen zu haben. Sie sind sonst nutzlos.

War es hilfreich?

Lösung

Der Code, den Sie geschrieben wird von Qt erzeugt Metaobjekt-Compiler (moc) aus dem Header-Datei. Sie sollten nicht die Datei selbst schreiben / ändern. Schreiben Sie einfach Ihre Klasse-Header und laufen moc darauf (die in der Regel durch das Build-System gehandhabt wird Sie verwenden, qmake es standardmäßig übernommen werden können).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top