c++ - 如何将 QVector 与多个对象一起使用

标签 c++ qt qlist qvector

我正在尝试使用 Qt 中的 QVector 类来工作(对我来说:P)。我想要做的是将对象 Question 的多个实例放入 QVector 中。

我去过多个论坛,但对于我来说,它们都太复杂了,因为我是初学者。 这个one post was perfect但我没有找到解决问题的方法。

所以我向你寻求帮助!

这是我想要工作的功能:

创建束/vector 的部分

/**
 * @brief MenuQuestionnary::assembleQuiz
 * Assemble the bundle of question that will be used in Quiz class
 */
void MenuQuestionnary::assembleQuiz(){
    QVector<Question> vectorQuiz;
    vectorQuiz.reserve(spinBoxNumberOfQuestion->value());
    for(int i = 0; i <= spinBoxNumberOfQuestion->value(); i++){
        vectorQuiz.append(Question((qrand()% maximumNumberOfQuestionAvailable)));
    }
}

这是我的问题构造函数:

Question::Question(int id)
{
    this->questionId = id;

    //TODO: Actually get it from DB
    this->questionText = "2+2?";
    this->explanation = "Addition mechanics";
    this->creatorId = 1;

}

我期望在这里做的是将Question对象的选定数字放入 vector 中。之后我可以将其传递给另一个类(class)。从那里我应该能够从中提取文本(questionTextquestionExplanation)。

最佳答案

您正在尝试推送类类型 Question 的对象进入QVector<int> ,显然期待 int反而。您应该将其更改为 QVector<Question>首先。

不过,我强烈建议您阅读 a good book在继续深入之前先了解一下 C++,否则你的体验会变得越来越复杂。

从互联网上的论坛复制粘贴代码不是编程,很快就会给您带来麻烦。

关于c++ - 如何将 QVector 与多个对象一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21511073/

相关文章:

c++ - 为什么 QWidget::paintEvent 没有被调用?

c++ - Winapi 创建标签菜单

c++ - QSystemTrayIcon 不显示

c++ - 从各种列表中收集条目的迭代器列表

c++ - 非拥有指针作为现代 C++ 中的类成员

c++ - 教 gdb 从核心文件中理解微线程

multithreading - 线程,QRunnable 和 QThreadPool,我无法详细介绍

c++ - 使用 vbo ,使用着色器绘制纹理,但不显示任何内容

c++ - 必须使用 '.*' 或 '->*' 来调用 'lessThan (...)' 中的指向成员函数的指针,例如 '(... ->* lessThan) (...)'

c++ - 自定义对象的 QList