ich hab hier einen Konstruktor der Klasse KGarten. Diesem wird ein Pointer Held *g uebergeben:
Code: Alles auswählen
KGarten::KGarten(Held *g) {
gart = g;
setGeometry(70,70,460,230);
glayout = new QGridLayout();
big = new QHBoxLayout(this);
vL = new QVBoxLayout();
big->addLayout(glayout,3);
big->addLayout(vL,1);
///////////////////////////
cl = new QPushButton("Genug gepflanzt!",this);
for (krautID i=NN;i<=MAX;i=krautID(i+1)) {
kL[i] = new QHBoxLayout();
kraut[i] = new QLabel(gart->getKrautName(i),this);
krautZahl[i] = new QLCDNumber(gart->getKrautZahl(i),this);
vL->addLayout(kL[i]);
kL[i]->addWidget(kraut[i]);
kL[i]->addWidget(krautZahl[i]);
}
vL->addWidget(cl);
//////////////////////////////7
fokusx = fokusy = 0;
for(int i=0;i<REIHEN;i++) {
for(int j=0;j<SPALTEN;j++) {
topf[i][j] = new KTopf(gart->getKrautFarbe(gart->getGartenKraut(i,j)),this);
glayout->addWidget(topf[i][j],i,j);
}
}
big->activate();
}
ASSERT: "i >= 0" in file ../../include/QtCore/../../src/corelib/tools/qstring.h, line 871
ich hab hier mal noch die Zeilen 860 bis 880 ungefaehr rauskopiert.
Code: Alles auswählen
...
inline QString::QString() : d(&shared_null) { d->ref.ref(); }
inline QString::~QString() { if (!d->ref.deref()) free(d); }
inline void QString::reserve(int asize) { if (d->ref != 1 || asize > d->alloc) realloc(asize); d->capacity = 1;}
inline QString &QString::setUtf16(const ushort *autf16, int asize)
{ return setUnicode(reinterpret_cast<const QChar *>(autf16), asize); }
inline QCharRef QString::operator[](int i)
{ Q_ASSERT(i >= 0); return QCharRef(*this, i); }
inline QCharRef QString::operator[](uint i)
{ return QCharRef(*this, i); }
inline QString::iterator QString::begin()
{ detach(); return reinterpret_cast<QChar*>(d->data); }
inline QString::const_iterator QString::begin() const
{ return reinterpret_cast<const QChar*>(d->data); }
...
Ich vermute, dass der Fehler in dieser Zeile liegt:
kraut = new QLabel(gart->getKrautName(i),this);
mit QString getKrautName(krautID i);
krautID ist ein 'enum'. Ich hatte eigentlich ein Test-Programm geschrieben, um zu sehen, ob das funktioniert, und es hat funktioniert. Mach ich etwas anderes grundsätzlich falsch?
Vielen Dank
Gary
/edit by Christian81 - Code-Tags korrigiert