ich habe den Fehler `QObject::QObject(const QObject&) is private`.
Ich weiß schon, dass das daher führt, dass ich irgendwo versuche QObject zu kopieren.
Das Problem ist ich weiß nicht wo, da ich dies auch überhaupt nicht beabsichtige.
Ich will nur eine Klasse, die ein paar Werte speichert und sich bequem mit qSort sortieren
lässt.
Ich glaube der Fehler ist bei den Operatoren "<" und "==". Bin mir da aber nicht sicher, aber
ich weiß, dass ich die in dieser Form brauche, damit mir die Liste sauber nach Datum sortiert
wird.
Terminojekt.h
Code: Alles auswählen
#ifndef TERMINOBJEKT_H
#define TERMINOBJEKT_H
#include <QObject>
#include <QString>
#include <QDate>
class Terminobjekt : public QObject
{
Q_OBJECT
Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
Q_PROPERTY(QString monat READ monat WRITE setMonat NOTIFY monatChanged)
Q_PROPERTY(QString tagaswort READ tagaswort WRITE setTagaswort NOTIFY tagaswortChanged)
Q_PROPERTY(int tagaszahl READ tagaszahl WRITE setTagaszahl NOTIFY tagaszahlChanged)
Q_PROPERTY(QString ort READ ort WRITE setOrt NOTIFY ortChanged)
Q_PROPERTY(QString beschreibung READ beschreibung WRITE setBeschreibung NOTIFY beschreibungChanged)
public:
Terminobjekt(QObject *parent);
Terminobjekt(const QString Name, const int Type, const QDate Datum, const QString Ort, const QString Beschreibung);
QString name();
void setName(QString &name);
QString monat();
void setMonat(QString &monat);
QString tagaswort();
void setTagaswort(QString &tag);
int tagaszahl();
void setTagaszahl(int &tag);
QString ort();
void setOrt(QString &ort);
QString beschreibung();
void setBeschreibung(QString &beschreibung);
QDate datum();
void setDatum(QDate &Datum);
bool operator< (const Terminobjekt &other) const;
bool operator==(const Terminobjekt &other) const;
private:
QString _Name;
int _Type;
QDate _Datum;
QString _Ort;
QString _Beschreibung;
signals:
void nameChanged();
void monatChanged();
void tagaswortChanged();
void tagaszahlChanged();
void ortChanged();
void beschreibungChanged();
};
#endif // TERMINOBJEKT_H
Code: Alles auswählen
#include "terminobjekt.h"
Terminobjekt::Terminobjekt(QObject *parent = 0 ) : QObject(parent)
{
}
Terminobjekt::Terminobjekt(const QString Name, const int Type, const QDate Datum, const QString Ort, const QString Beschreibung)
{
_Name = Name;
_Type = Type;
_Datum = Datum;
_Ort = Ort;
_Beschreibung = Beschreibung;
}
QString Terminobjekt::name()
{
return _Name;
}
void Terminobjekt::setName(QString &name)
{
_Name = name;
emit nameChanged();
}
QString Terminobjekt::monat()
{
int Monat = _Datum.month();
QString Out = "";
switch (Monat) {
case 1:
Out = "Januar";
break;
case 2:
Out = "Februar";
break;
case 3:
Out = "März";
break;
case 4:
Out = "April";
break;
case 5:
Out = "Mai";
break;
case 6:
Out = "Juni";
break;
case 7:
Out = "Juli";
break;
case 8:
Out = "August";
break;
case 9:
Out = "September";
break;
case 10:
Out = "October";
break;
case 11:
Out = "November";
break;
case 12:
Out = "Dezember";
break;
default:
break;
}
return Out;
}
void Terminobjekt::setMonat(QString &monat)
{
int Monat = 1;
switch (monat) {
case "Januar":
Monat = 1;
break;
case "Februar":
Monat = 2;
break;
case "März":
Monat = 3;
break;
case "April":
Monat = 4;
break;
case "Mai":
Monat = 5;
break;
case "Juni":
Monat = 6;
break;
case "Juli":
Monat = 7;
break;
case "August":
Monat = 8;
break;
case "September":
Monat = 9;
break;
case "October":
Monat = 10;
break;
case "November":
Monat = 11;
break;
case "Dezember":
Monat = 12;
break;
default:
break;
}
_Datum.setDate(_Datum.year(), Monat, _Datum.day());
emit monatChanged();
}
QString Terminobjekt::tagaswort()
{
int Tag = _Datum.dayOfWeek();
QString Out = "";
switch (Tag) {
case 1:
Out = "Montag";
break;
case 2:
Out = "Dinstag";
break;
case 3:
Out = "Mittwoch";
break;
case 4:
Out = "Donnerstag";
break;
case 5:
Out = "Freitag";
break;
case 6:
Out = "Samstag";
break;
case 7:
Out = "Sonntag";
break;
default:
break;
}
return Out;
}
void Terminobjekt::setTagaswort(QString &tag)
{
int Tag = 1;
switch (tag) {
case "Montag":
Tag = 1;
break;
case "Dinstag":
Tag = 2;
break;
case "Mittwoch":
Tag = 3;
break;
case "Donnerstag":
Tag = 4;
break;
case "Freitag":
Tag = 5;
break;
case "Samstag":
Tag = 6;
break;
case "Sonntag":
Tag = 7;
break;
default:
break;
}
_Datum.setDate(_Datum.year(), _Datum.month(), Tag);
emit tagaswortChanged();
}
int Terminobjekt::tagaszahl()
{
return _Datum.day;
}
void Terminobjekt::setTagaszahl(int &tag)
{
_Datum.setDate(_Datum.year(), _Datum.month(), tag);
emit tagaszahlChanged();
}
QString Terminobjekt::ort()
{
return _Ort;
}
void Terminobjekt::setOrt(QString &ort)
{
_Ort = ort;
emit ortChanged();
}
QString Terminobjekt::beschreibung()
{
return _Beschreibung;
}
void Terminobjekt::setBeschreibung(QString &beschreibung)
{
_Beschreibung = beschreibung;
emit beschreibungChanged();
}
QDate Terminobjekt::datum()
{
return _Datum;
}
void Terminobjekt::setDatum(QDate &Datum)
{
_Datum = QDate(Datum);
emit monatChanged();
emit tagaswortChanged();
emit tagaszahlChanged();
}
bool Terminobjekt::operator< (const Terminobjekt & other) const
{
return _Datum < *other.datum();
}
bool Terminobjekt::operator== (const Terminobjekt & other) const
{
return _Datum == *other.datum();
}