Seite 1 von 1

Problem: Falsche Klasse zugewiesen

Verfasst: 12. September 2008 18:00
von rafilis1982
Hallo,

ich habe das Problem, dass ich bei einem Methodenaufruf gerne eine Objekt von einer von mir selbst geschriebenen Klasse übergeben möchte.

Das ganze sähe so aus:

Code: Alles auswählen

#include "shape.h"
...
bool write(QIODevice *device, Shape *shape);
Nur leider hält er Shape für eine Klasse vom Typ enum QFrame::Shape.

Wie kann ich dies beheben?

Verfasst: 12. September 2008 18:06
von patrik08
probiere mal die metatype zu lesen:
http://doc.trolltech.com/4.1/qmetatype.html

classen die nicht mit QObject verbunden sind muss man declarieren

Q_DECLARE_METATYPE(FlashItem);

so kann man sie auch in slot verwenden ...

Verfasst: 12. September 2008 18:57
von rafilis1982
Kann ich ehrlich gesagt nicht nachvollziehen...

Was muss ich denn genau tun?

Muss ich nun vor jedem Konstruktur in meiner Shape Klasse Q_DECLARE_METATYPE anwenden?

Verfasst: 12. September 2008 19:47
von Christian81
Ich denke da sind zwei Fehler :)
1. So einen generischen Namen benutzt man nicht und wenn doch dann doch bitte in einem eigenen Namespace
2. Es könnte ggf. mit "class Shape *shape" gehen

Verfasst: 12. September 2008 20:03
von rafilis1982
Super, der Tip mit dem eigenen Namespace hat geholfen.

vielen Dank :D