gpt4 book ai didi

c++ - 无法将项目添加到 QMap

转载 作者:太空宇宙 更新时间:2023-11-04 12:17:19 25 4
gpt4 key购买 nike

我有一个问题。我想我正在做一些非常愚蠢的事情。我是 C++ 和 Qt 的新手。

我有一个类 SavedVar。我正在尝试向私有(private)成员 Qmap 添加键/值。当我调用 SavedVar::addVar() 时,程序崩溃了。 SavedVar::addvar() 正确接收“id”和“notes”。

#include <QObject>
#include <QMap>
#include "variation.h"
#include <QTableWidget>
#include "mainwindow.h"

class SavedVar : public QObject
{
Q_OBJECT
public:
explicit SavedVar(QObject *parent = 0);
void addVar(QString id, QString notes);
void saveVar(QString varText );
void removeSavedVar(QList <QTableWidgetItem*> &varList);
QString generateSaveFile();
void loadVarFile(QString filename);
const QMap<QString, QString>*getVmapPtr();

private:
QMap <QString, QString> vmap;

};

void SavedVar::addVar(QString id, QString notes)
{
vmap[id]= notes;
}

我很难理解 Qt Creator 中的调试输出:

0   QBasicAtomicInt::operator!= qbasicatomic.h  75  0x4116e3    
1 QMap<QString, QString>::detach qmap.h 202 0x41ede2
2 QMap<QString, QString>::operator[] qmap.h 526 0x41d241
3 SavedVar::addVar savedvar.cpp 17 0x44afc9
4 SavedVar::loadVarFile savedvar.cpp 82 0x44b4b8
5 MainWindow::load_data mainwindow.cpp 190 0x40d5fe

干杯,

尼尔

最佳答案

也许你没有通过这样做来初始化 QMap 对象:

vmap = new(QMap <QString, QString>);

然后您可以使用 insert() 和 remove() 操作您的对象。

关于c++ - 无法将项目添加到 QMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7086121/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com