QT开发中文网

struct st_answer_trueOrfalse { bool banswer; bool banswer_standard; bool bret; }; struct st_answer_choose { int banswer; int banswer_standard; bool bret; }; struct st_answer_choose_multiple { QList *banswer;...

这段代码中出现了一个错误,原因是st_answer_choose_multiple结构体中的banswer成员被定义为指向QList<QString>的指针,在进行赋值操作时无法直接给指针分配新的内存空间。解决方法是将其定义为普通的QList<QString>类型而非指针类型。

修改后的代码如下:

struct st_answer_choose_multiple {
    QList<QString> banswer;
    QList<QString> banswer_standard;
    bool bret;
};

然后在 st_subjectToJson() 函数中修改对应部分代码:

case 2: {  // Choose Multiple
    QJsonObject chooseMultipleAnswerObj;
    QJsonArray banswerArray, banswerStandardArray;

    for (const QString& answer : subject.subject_Type.choose_multiple.banswer) {
        banswerArray.append(answer);
    }

    for (const QString& answer : subject.subject_Type.choose_multiple.banswer_standard) {
        banswerStandardArray.append(answer);
    }

    chooseMultipleAnswerObj["banswer"] = banswerArray;
    chooseMultipleAnswerObj["banswer_standard"] = banswerStandardArray;
    chooseMultipleAnswerObj["bret"] = subject.subject_Type.choose_multiple.bret;

    json["subject_Type"] = chooseMultipleAnswerObj;

    break;
}

这样就可以正确地处理多选题型的答案了。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:http://qt.0voice.com/?id=12166

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?