C++ Qt - Problem mit Ui

badday

Commander
Registriert
Sep. 2007
Beiträge
3.023
Moin zusammen,

ich arbeite hier gerade an einem Projekt und habe ein Problem: Beim Kompilieren treten Fehler auf, die ich mir beim besten willen nicht erklären kann.

Zunächst mal etwas Code:

Header-Datei:
Code:
namespace Ui
{
    class fav;
}

class fav : public QDialog {
    Q_OBJECT
public:
    fav(QWidget *parent = 0);
    ~fav();
//...

private:
Ui::fav *m_ui;
//...

}

Source:
Code:
fav::fav(QWidget *parent) :  QDialog(parent), m_ui(new Ui::fav)
{
    m_ui->setupUi(this);
//...

Die Header müssten alle includiert sein, hier nochmal zur Sicherheit der relevante Teil:
Header: #include <QtGui/QDialog>
Source: #include <QDialog> #include "fav.h" #include "ui_fav.h" #include <QtGui>

So, nun erhalte ich folgende Fehler-Ausgabe:
Fehler: invalid use of incomplete type »struct Ui::fav«
Fehler: forward declaration of »struct Ui::fav«
//....

Dies wird noch einige male wiederholt und daraus resultierende Fehler werden auch noch ausgeben.

Ich kann keinen Fehler entdecken und habe ihn auch mit anderem Quellcode von mir verglichen, konnte das Problem aber nicht lokalisieren. Ich wäre für Hilfe wirklich sehr dankbar, da die Sache bald fertig sein soll (muss^^).

Vielen Dank.

Gruß,

badday
 
Hi,
bin selbst noch sehr neu mit Qt, aber schau mal in der Initialisierungsliste deiner Klasse... stimmt da die Reihenfolge?

Gruß

Kannst du mal noch die methode zeigen wo der fehler auftritt?

Hast du fav auch überall inkludiert?
 
Zuletzt bearbeitet:
"Der Fehler" tritt überall auf, wo ich m_ui benutze.
D. h. z. B. hier:
fav::fav(QWidget *parent) : QDialog(parent), m_ui(new Ui::fav)
Also im Konstruktor tritt der Fehler:
Fehler: invalid use of incomplete type »struct Ui::fav«
auf.
Im Header:
namespace Ui
{
class fav;
}
wird als Fehler angeben, dass es sich dabei um eine Forward-Declaration handle, was an sich stimmen mag, jedoch ist das kein Problem (funktioniert bei meinen anderen Programmen ohne Probleme).

Ansonsten tritt der oben beschriebe Fehler eben überall auf, wo ich es benutzt, also auch im Destruktor....
Die Header kannst du oben sehen, das müsste passen.

Gruß,

badday

EDIT: Ich habe den Fehler gefunden: Ich hatte fälschlicherweise einfach eine .ui-Datei benutzt, die ein QMainWindow war und wollte diese als Dialog benutzen...
 
Zuletzt bearbeitet:
Zurück
Oben