使用QT Creator / c ++的类中的QList

时间:2015-06-02 21:50:15

标签: c++ list qt qt-creator

如何创建一个QList,这个列表可以包含来自多个类的信息(这些类由两个Map-Containers操作)?

这是我的4个班级:

讲座课程:

  class Veranstaltung
    {
    private:
       QMap<QString, LV >myLV; 
    public:
    Veranstaltung() {}
    void listLV(QTextStream& out) const; 
    ...
   };

    #endif // 

教授级别

    LIST_H

     class ProfessurList
    {
    private:
        QMap<QString, Professur> myProfessuren; 
    public:
        ProfessurList() {} //kann man weglassen
        void addProf(QTextStream& in,QTextStream& out);
        void listProf(QTextStream& out) const; //Warum const?
       ...
    };

    #endif // PROFLIST_H

讲座的另一个课程,其中定义了私人和公共课程:

#ifndef LV_H
#define LV_H

class LV
{
private:
    QString myNummer;
    QString myBezeichnung;
    QString myTyp;
public:
    LV(const QString& nummer, const QString& bezeichnung, const QString& typ):
        myNummer(nummer), myBezeichnung(bezeichnung), myTyp(typ)

    {}
    QString nummer() const { return myNummer;}

    ...
};
QTextStream& operator<<(QTextStream& out, const LV& l); 

#endif // LV_H

定义私人和公共职业的另一类职业:

  #ifndef PROF_H
    #define PROF_H


    class Professur
    {
    private:
    QString myKuerzel;
    QString myName;
    QString myLehrstuhlinhaber;
    public:
    Professur(const QString& kuerzel, const QString& name, const QString& lehrstuhlinhaber):
        myKuerzel(kuerzel), myName(name), myLehrstuhlinhaber(lehrstuhlinhaber)
    {}

   ...
    };
    QTextStream& operator<<(QTextStream& out, const Professur& pr);

    #endif // PROF_H

1 个答案:

答案 0 :(得分:1)

你不能简单地用X对象创建struct吗?像:

Struct ProfessorsAndLecturs
{
   Veranstaltung v;
   LEctures l;
   ...
};
ProfessorsAndLecturs pal;
pal.v = ...;
pal.l = ...;

QList<ProfessorsAndLecturs> list;
list.append(pal);

以后:

list.at(0).l;
etc.

如果这是你要求的。