QT: eigene Objekte

Julian-w

Mitglied
Hallo,
irgendwie komm ich momentan überhaupt nicht weiter, wobei es eigentlich was ganz simples sein sollte....
Ich beginne gerade, mich an QT "heranzutasten". Dafür habe ich ein Subdir-Projekt erstellt und darunter ein GUI-Projekt und eine "shared Library". Die Library hab ich dem GUI-Projekt hinzugefügt. (Die Library hab ich deshalb erstellt, da ich den Code später noch in anderen Projekte einsetzten möchte).

In die Library soll nun das Objekt-Modell kommen. Doch irgendwie kriege ich das nicht hin :(
Ich will einfach nur "simple" Objekte, wie z.B. in php, erzeugen und dazu noch Namespaces nutzen.

Hier mal ein Auszug:

/root
-/player
---player.h
---player.ccp

player.h
Code:
#ifndef PLAYER_H
#define PLAYER_H

#include <qobject.h>

namespace player
{

class player : public QObject
{    
    Q_OBJECT

public:
    player(QString mediaPath);
    void test();
};

}

#endif // PLAYER_H

player.ccp
Code:
#include "player.h"

namespace player
{

player::player(QString mediaPath)
{
}

void player::test()
{
}

}

Dabei erhalte ich folgende Fehlermeldung:
Code:
X/player/player.cpp:6: undefined reference to `vtable for player::player'
X/player/player.cpp:6: undefined reference to `vtable for player::player'

Keine Ahnung, was ich falsch mache, aber irgendwie finde ich in google auch nichts brauchbares...
Am Ende würde ich gerne von meine GUI Projekt wie folgt auf die Library zugreifen können:

Code:
#include "player/player.h"

[...]

int main(int argc, char *argv[])
{        
    [...]
    player::player *tmp = new player::player();
    tmp.test();
    [...]
}

Evtl. könntet ihr mir ja weiterhelfen, ein kleiner Code-Schnippsel würde mir vermutlich schon auf die Sprünge helfen.

Viele Grüße
Julian
 
Hi.

Wenn du QObject verwenden willst, mußt du die die Dateien erstmal durch moc verarbeiten lassen. Das Resultat dieser Verarbeitung mußt du dann noch zu deiner Bibliothek dazulinken.

Verwendest du qmake?

Gruß
 
Von QObject abzuleiten, wäre notwendig, wenn du das SIGNAL/SLOT-System von Qt in deinen Klassen verwenden willst. Eine simple Klasse braucht ansonsten nicht unbedingt eine Elternklasse.

Gruß
MCoder
 
Zurück