PDA

View Full Version : Error on constructor



mayrhofer
29th December 2015, 14:12
Hi everyone,
i always get this error when i compile :
'Viewer' has not been declared

My viewer.h and modultreewidget.h are in the same directory.

MODULTREEWIDGET:

#ifndef MODULTREEWIDGET_H
#define MODULTREEWIDGET_H

#include <QWidget>
#include <QTreeWidget>
#include <QTimer>
#include "viewer.h"
#include "basewidget.h"

class ModulTreeWidget : public QTreeWidget
{
Q_OBJECT
public:
explicit ModulTreeWidget(QTreeWidget *parent=0,Viewer *v=0);
~ModulTreeWidget();
void addModule(BaseWidget *b);
public slots:
void startPresentation();
void showNext();
private:
std::vector<BaseWidget*> baseWidgets;
int count;
int currentId;
};

#endif // MODULTREEWIDGET_H


VIEWER:

#ifndef VIEWER_H
#define VIEWER_H

#include <QMainWindow>
#include <QWidget>
#include <QVBoxLayout>
#include <QLabel>
#include <QDebug>
#include <QStringList>
#include <QInputDialog>
#include <QString>
#include <QMessageBox>
#include <QVector>
#include <QListWidget>
#include <QListWidgetItem>
#include <QTableWidgetItem>
#include <QList>
#include <QItemSelectionModel>
#include <QModelIndexList>
#include "basewidget.h"
#include "tabledialog.h"
#include <QTreeWidget>
#include <QTreeWidgetItem>
#include <vector>
#include <QDesktopWidget>
#include <QColorDialog>
#include "modultreewidget.h"

namespace Ui {
class Viewer;
}

class Viewer : public QMainWindow
{
Q_OBJECT

public:
explicit Viewer(QWidget *parent = 0);
~Viewer();
What´s the problem?

anda_skoa
29th December 2015, 14:25
Try to reduce the includes inside headers by forward declaring classes that are only needed as pointers.

For example in modultreewidget.h you only need QTreeWidget.

Right now you have a circular dependency of viewer.h and modultreewidget.h

Cheers,
_