无法向 QMap 添加项目
我有一个问题。我想我正在做一些非常愚蠢的事情。我是 C++ 和 Qt 的新手。
我有一个 SavedVar 类。我正在尝试向私有成员 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 创建者中的调试输出:
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
干杯,
尼尔
I have a problem. I assume I'm doing something really dumb. I'm new to C++ and Qt.
I have a class SavedVar. I'm trying to add a key/value to a private member Qmap. When I call SavedVar::addVar(), the program crashes. SavedVar::addvar() is receiving 'id' and 'notes' correctly.
#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;
}
I'm struggling to understand the debug output in 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
Cheers,
Neil
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
也许您没有通过这样做初始化 QMap 对象:
然后您可以使用 insert() 和 remove() 操作您的对象。
Maybe you didn't initialize the QMap object by doing so :
Then you can manipulate your object with insert() and remove().
您是否尝试过使用 QMap 方法插入?
Have you tryed with the QMap method insert ?