Alles rund um die Programmierung mit Qt
rafilis1982
Beiträge: 34 Registriert: 6. Juni 2008 14:44
Beitrag
von rafilis1982 » 12. September 2008 18:00
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?
patrik08
Beiträge: 746 Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg
Beitrag
von patrik08 » 12. September 2008 18:06
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 ...
.........................
speack português italiano deutsch english castellà qt
rafilis1982
Beiträge: 34 Registriert: 6. Juni 2008 14:44
Beitrag
von rafilis1982 » 12. September 2008 18:57
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?
Christian81
Beiträge: 7319 Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:
Beitrag
von Christian81 » 12. September 2008 19:47
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
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
rafilis1982
Beiträge: 34 Registriert: 6. Juni 2008 14:44
Beitrag
von rafilis1982 » 12. September 2008 20:03
Super, der Tip mit dem eigenen Namespace hat geholfen.
vielen Dank