ich versuche gerade mal wieder eine Übungsaufgabe zu machen und komme nicht klar.
Ziel ist eine Kontaktliste zu machen. Wobei die Aufgabe darauf abzielt, den Umgang mit QList zu erlernen bzw. zu verstehen.
Zunächst meine Kontakt.h:
Code: Alles auswählen
#ifndef KONTAKT_H
#define KONTAKT_H
#include <QString>
class Kontakt
{
friend class KontaktListe;
public:
Kontakt();
QString toString();
private:
int kategorie;
QString vorName;
QString nachName;
QString strassenAdresse;
int postleitzahl;
QString ort;
int telefonNummer;
};
#endif // KONTAKT_H
Die Kontaktliste.h sieht folgendermaßen aus:
Code: Alles auswählen
#ifndef KONTAKTLISTE_H
#define KONTAKTLISTE_H
#include <QStringList>
class Kontakt;
class KontaktListe
{
public:
KontaktListe();
void zufuegen(Kontakt k);
void entfernen(Kontakt k);
QStringList getTeleListe(int Kategorie);
QStringList getMailListe(int Kategorie);
QList<Kontakt> gesamtKontaktliste;
};
#endif // KONTAKTLISTE_H
Code: Alles auswählen
#include "kontaktliste.h"
#include "kontakt.h"
#include <QTextStream>
#include <QString>
#include <QMessageBox>
#include <QStringList>
#include <QDebug>
#include <iostream>
#include <QInputDialog>
using namespace std;
KontaktListe::KontaktListe()
{
}
void KontaktListe::zufuegen(Kontakt k)
{
QString kontaktSpeichern = QString("Möchten Sie den Kontakt zufuegen?");
int frage2;
int antwort = QMessageBox::question(0, "Kontakt hinzufügen", kontaktSpeichern, QMessageBox::Yes | QMessageBox::No);
if (antwort == QMessageBox::Yes)
gesamtKontaktliste += k;
QString Kontaktanzeige2 = QString ("Name: \t%1 \t%2"
"\n Strasse: \t%3"
"\n PLZ: \t%4\tOrt: \t%5"
"\n Tel.-Nr.: \t%6").arg(k.vorName).arg(k.nachName).arg(k.strassenAdresse)
.arg(k.postleitzahl).arg(k.ort).arg(k.telefonNummer);
frage2 = QMessageBox::information(0, "Kontakt", Kontaktanzeige2,
QMessageBox::Ok);
}
void KontaktListe::entfernen(Kontakt k)
{
bool ok;
QString suchKontakt = QInputDialog::getText(0, "Kontakt", "Nachname", QLineEdit::Normal, "Zu entfernender Kontakt", &ok);
if (ok) {
}
}
}
Allerdings ist mir nicht klar, was beim entfernen nach dem if (ok) kommt, wenn ich einen Kontakt auf der gesamtKontaktliste über das Klassenattribut des Nachnamen ("nachName") suchen möchte? Kann ich das überhaupt?
Über gesamtKontaktliste.indexOf(suchKontakt) funktioniert das nicht, da kommt eine Fehlermeldung (wenn ich diese posten soll, einfach Bescheid geben). Ist vermutlich dem geschuldet, dass in der Liste der Typ Kontakt gespeichert ist und in suchKontakt ein QString.
Weiterhin würde mich interessieren, unter was die Liste die Kontakte speichert? Werden die Kontakte unter dem Namen gespeichert, welche ich ihnen im main.cpp gebe, oder anders?
Wenn jemand auch eine ausführlichere Bechreibung von Qlist wüsste, wäre das auch nett, wo ich die finden kann, in den Büchern, welche ich habe wird das gar nicht bzw. nur kurz angesprochen.
Wenn noch irgendetwas gebraucht wird, poste ich das gerne.
Vielen Dank schonmal an alle, welche sich die Mühe machen mir zu helfen
Gruß
Patrick