Architekturfrage: Drag&Drop mit "toolbox"

Alles rund um die Programmierung mit Qt
Antworten
piXelshooter
Beiträge: 43
Registriert: 25. März 2007 21:19

Architekturfrage: Drag&Drop mit "toolbox"

Beitrag von piXelshooter »

Hallo,
Das Szenario: Ich möchte eine Toolbox machen (dazu denke ich im mom an ein QListWidget), aus dem man Objekte, die dort als String angezeigt werden, in ein Fenster (eine QGraphicsScene) gezogen werden. Dort soll dann das entsprechende Symbol aufgebaut aus den grundelementen erscheinen.

Das Problem: Mein aktueller denkansatz ist, das QListWidget gibt dem MIME typ einen string mit, und je nach string entscheidet dann die Szene, welches Objekt sie erzeugen soll.
Schlecht insofern, als dass neue Symboltypen mehrfach registriert werden müssten, nämlcih einmal in der Liste, um den String zuzuweisen, und einmal in der Szene, um den String zu dekodieren.

Ich stehe gerade iwie auf dem Schlauch, sowas möglichst einfach und v.a. flexibel zu lösen...
lepsai
Beiträge: 573
Registriert: 14. September 2004 21:33
Wohnort: Berlin
Kontaktdaten:

Beitrag von lepsai »

Nun, Im Grunde willste eine Factory benutzen, etwa so:

class MyObjectFactory
{
public:
Object* createObject(const std::string& factoryId);

public:
static bool registerCreator(const std::string& factoryId, ObjectCreator* creator);

protected:
static std::map<std::string, ObjectCreator*> s_creatorMap;
};


class ObjectCreator
{
virtual Object* create() const = 0;
};


class MyTypeCreator: public ObjectCreator
{
public:
virtual Object* create() const{
return new MyType();
}

};
Antworten