Я пытаюсь добавить объект типа student, содержащий Qlist из QStrings, в Qlist из числа студентов типа, я подтвердил, что Qstrings добавляются к объекту-ученику на одном этапе, однако они кажутся быть пустым, когда я получу код ниже;Custom Type Qlist и Scope
for(int i = 0; i < studentList.size(); i++){
qDebug() << studentList.at(i).atindex(i);
Показан внизу.
- Listmanager.h
#ifndef LISTMANAGER_H
#define LISTMANAGER_H
#include <QString>
#include <QList>
#include <QStandardItemModel>
class listManager: QObject
{
Q_OBJECT
public:
listManager();
listManager(QList<QString> list);
QAbstractItemModel* listManager::getmodelview();
QAbstractItemModel* listManager::getclassmodelView();
public:
QStandardItemModel *courseModel = new QStandardItemModel(0,0);
QStandardItemModel *classModel = new QStandardItemModel(0,0);
};
#endif // LISTMANAGER_H
- Релевент часть listmanager.cpp
student st;
int count2 = 0;
for (int i =6; i < list.size(); ++i){
if(count2 < 6){
st.appendtolist(list.at(i));
count2++;
}
if(count2 == 6){
count2 =0;
studentList.append(st);
st.showlist();
st.clearlist();
}
}
for(int i = 0; i < studentList.size(); i++){
qDebug() << studentList.at(i).atindex(i);
- student.cpp
#include "student.h"
#include <QDebug>
student::student()
{
}
void student::appendtolist(QString item){
list->append(item);
}
void student::showlist(){
qDebug() << *list;
}
void student::clearlist(){
list->clear();
}
QString student::atindex(int index)const {
for(int i = 0; i < list->size(); i++){
if(index == i){
return list->at(i);
}
}
return "Not Good!";
}
- student.h
#ifndef STUDENT_H
#define STUDENT_H
#include <QString>
#include <QList>
class student
{
public:
QList<QString> *list = new QList<QString>();
student();
void student::appendtolist(QString item);
void student::showlist();
void student::clearlist();
QString atindex(int index) const;
};
#endif // STUDENT_H
Ouput:
"Не хорошо!" "Нехорошо!" "Нехорошо!" "Нехорошо!" "Нехорошо!" «Не Хорошо!» "Нехорошо!" "Нехорошо!" "Нехорошо!" "Нехорошо!" "Нехорошо!" «Неплохо!» "Нехорошо!" "Нехорошо!" "Нехорошо!" "Нехорошо!" «Не Хорошо!»
Нет необходимости динамически распределять список, он уже использует динамическое распределение внутри страны. – dtech
Извините, не могли бы вы подробно остановиться на этом. – user4217633
Вам не нужно «QList * list = new QList ();' вместо 'QList list;' достаточно. Вы ничего не получаете от этого и даже теряете немного, так как он добавляет еще один уровень косвенности и использования памяти и накладных расходов. –
dtech