Ersetzen von Q3PtrList durch QList
Verfasst: 14. Dezember 2016 15:39
Hallo,
ich möchte eine Qt3 Anwendung auf Qt4 anpassen. Dabei habe ich die Klasse Q3PtrList durch QList ersetzt.
Nun läuft der Compiler u. a. auf folgenden Fehler:
Die Stelle im Quelltext ist folgende Funktion:
http://doc.qt.io/qt-4.8/q3ptrlist.html Doku zu Q3PtrList
http://doc.qt.io/qt-4.8/qlist.html Doku zu QList
KScoringRule ist eine selbst definierte Klasse.
Ist das Problem das "const" oder generell der Typ KScoringRule?
mike
ich möchte eine Qt3 Anwendung auf Qt4 anpassen. Dabei habe ich die Klasse Q3PtrList durch QList ersetzt.
Nun läuft der Compiler u. a. auf folgenden Fehler:
Code: Alles auswählen
/usr/include/QtCore/qlist.h: In Instanziierung von »int QList<T>::indexOf(const T&, int) const [with T = KPIM::KScoringRule]«:
......../kde-pim/kdepim-noakonadi/libkdepim/kscoring.cpp:1037:35: required from here
/usr/include/QtCore/qlist.h:847:24: Fehler: no match for »operator==« (operand types are »KPIM::KScoringRule« and »const KPIM::KScoringRule«)
if (n->t() == t)
In file included from /usr/include/kde4/kdemacros.h:162:0,
from ......../kde-pim/kdepim-noakonadi/libkdepim/kdepim_export.h:24,
from ......../kde-pim/kdepim-noakonadi/libkdepim/kscoring.h:21,
from ......../kde-pim/kdepim-noakonadi/libkdepim/kscoring.cpp:23:
Code: Alles auswählen
KScoringRule *KScoringManager::addRule( KScoringRule *expr )
{
// int i = allRules.findRef( expr ); // Alt; allRules ist vom Typ Q3PtrList
int i = allRules.indexOf( *expr ); // Neu; Zeile 1037 allRules ist vom Typ QList
if ( i == -1 ) {
// only add a rule we don't know
addRuleInternal( expr );
} else {
emit changedRules();
}
return expr;
}
http://doc.qt.io/qt-4.8/qlist.html Doku zu QList
KScoringRule ist eine selbst definierte Klasse.
Ist das Problem das "const" oder generell der Typ KScoringRule?
mike