Designer erkennt eigene Klasse nicht [gelöst]

Alles rund um die Programmierung mit Qt
Antworten
Label
Beiträge: 55
Registriert: 15. August 2008 10:03

Designer erkennt eigene Klasse nicht [gelöst]

Beitrag von Label »

Hallo Leute,

ich habe im Designer von Qt4 eine ui erstellt. Ich habe eine Klasse 'MyLabel' von QLabel abgeleitet und eingebunden. In der automatisch erstellten ui_*.h :

Code: Alles auswählen

#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QLabel>
#include <QtGui/QWidget>
#include "mylabel.h"   //<-- mein Klasse ;)

class BlubbClass
{
public:
    QWidget *widget;
    QLabel *label;
    QLabel *label_7; //<-- funktioniert
    MyLabel *label_14; //<-- funktioniert nicht
    QWidget *widget_2;
    QLabel *label_2;
...
bekomme ich folgende Fehler:
>>label_14<< wurde in diesem Gültigkeitsbereich nicht definiert
expected type-specifier before >>MyLabel<<

ich verstehe nicht warum er das nicht kennt. Schließlich hat er den Code selbst erstellt, die Filenamen stimmen auch alle.

Woran kann das liegen?

Danke im Voraus
Zuletzt geändert von Label am 26. August 2008 10:37, insgesamt 2-mal geändert.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

myLabel ist imho im Namespace Ui::
Schau doch einfach mal im generierten .h - File nach - so schwierig wird das ja nicht sein :)
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Label
Beiträge: 55
Registriert: 15. August 2008 10:03

Beitrag von Label »

Das Problem ist nicht das ich nicht auf MyLabel zugreifen kann weil es im Ui namespace liegt.

Ich habe dieses MyLabel einfach nur im Designer eingefügt und nichts weiter gemacht, also ich verwende diese Variable noch nicht. Der Code oben ist aus der ui_blubb.h

Der Compiler kennt bei "MyLabel *label_14;" die MyLabel-Klasse nicht
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Wenn es in mylabel.h eine Klasse namens MyLabel gibt, so kompiliert der Code auch!
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Label
Beiträge: 55
Registriert: 15. August 2008 10:03

Beitrag von Label »

Das habe ich auch gedacht, er macht es aber nicht

mylabel.h:

Code: Alles auswählen

#ifndef MYLABEL_H_
#define MYLABEL_H_

#include "includes.h"

class MyLabel : public QLabel
{
	Q_OBJECT

private:
	bool pressed;
	QString pic;
	QString pic_pr;
	QString pic_ue;
	unsigned int x;
	unsigned int y;

public:
	MyLabel();
	MyLabel(QString Picname, QString Picname_pressed, int X, int Y);
	MyLabel(QString Picname, QString Picname_pressed, QString Picname_disabled, int X, int Y);
	virtual ~MyLabel();

public slots:
	void togglePressed();
	void toggleEnabled();

signals:
	void clicked();

protected:
	void mouseReleaseEvent(QMouseEvent *event);
};


#endif /* MYLABEL_H_ */
Label
Beiträge: 55
Registriert: 15. August 2008 10:03

Beitrag von Label »

OK ich hab es funzt jetzt. Hatte vergessen in der ui.h ne Vorwärtsdeklaration auf MyLabel zu machen :)
Antworten