Anbei die auf das wesentliche vereinfachten Quellcodes. Meine Vermutung:
Das myQHash ist im dem Header deklariert, sollte aber irgendwo im Source auch definiert sein?
DataItem.cpp
Code: Alles auswählen
#include "DataItem.h"
DataItem::DataItem()
{
this->dataID = 0;
this->dataCon = 0;
this->dataCat = 0;
this->dataName = "defName";
}
DataItem::DataItem(q_int32 tId, QString tName, q_int32 tCat, q_int32 tCon)
{
this->dataID = tId;
this->dataCon = tCon;
this->dataCat = tCat;
this->dataName = tName;
}
q_int32 DataItem::getID() const { return this->dataID; }
QString DataItem::getName() const { return this->dataName; }
q_int32 DataItem::getCat() const { return this->dataCat; }
q_int32 DataItem::getCon() const { return this->dataCon; }
DataItem::~DataItem(void) {}
DataItem.h
Code: Alles auswählen
#pragma once
#include <QString>
class Item
{
public:
Item();
Item(q_int32 tId, QString tName, q_int32 tCat, q_int32 tCon);
~Item(void);
q_int32 getID() const;
QString getName() const;
q_int32 getCat() const;
q_int32 getCon() const;
private:
q_int32 ID;
QString Name;
q_int32 Cat;
q_int32 Con;
};
DataController.cpp
Code: Alles auswählen
#include <QHash>
#include "DataController.h"
DataController::DataController(void)
{
// muss hier nicht sowas wie QHash<q_int32, DataItem> myQHash = new QHash(); ????
}
void DataController::addNew(DataItem& tPI) { this->myQHash.insert(tPI.getID(), tPI); }
void DataController::addNew(const DataItem * const tPI) { this->myQHash.insert(tPI->getID(), *tPI); }
void DataController::addNew(q_int32 tID, QString tName, q_int32 tCat, q_int32 tCon)
{
DataItem tPI (tID, tName, tCat, tCon);
this->myQHash.insert(tID, tPI);
}
DataController::~DataController(void) {}
DataController.h
Code: Alles auswählen
#pragma once
#include <QtGui>
#include <QString>
#include <QHash>
#include "DataItem.h"
class DataController
{
public:
DataController(void);
~DataController(void);
void addNew(DataItem& tPI);
void addNew(const DataItem * const tPI);
void addNew(q_int32, QString, q_int32, q_int32);
private:
QHash<q_int32, DataItem> myQHash;
};
MyDockWidget.cpp
Code: Alles auswählen
#include "MyDockWidget.h"
#include <QtGui>
MyDockWidget::MyDockWidget( QWidget *a_parent )
{
this->myDataController = new DataController();
myDataController.addNew(2511, tr("Heim"), 20481, 1272923, 6230100, 0);
myDataController.addNew(2512, tr("Work"), 20482, 1272963, 6230160, 0);
// Breakpoint here
}
MyDockWidget.h
Code: Alles auswählen
#ifndef MY_DOCK_WIDGET_H
#define My_DOCK_WIDGET_H
class MyDockWidget
{
Q_OBJECT
public:
/// @brief constructor
MyDockWidget( QWidget *parent);
DataController myDataController;
};
#endif // MY_DOCK_WIDGET_H