无法将项目添加到 QMap
Can't add items to 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 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()操作你的对象
您尝试过QMap方法插入吗?
void SavedVar::addVar(QString id, QString notes)
{
vmap.insert(id, notes);
}
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 如何在C++中从两个单独的for循环中添加两个数组
- POCO::PostgreSQL:如何将std::vector支持添加到`Binder::bind`
- 如何仅为一个函数添加延迟
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 使用std::transform将一个范围的元素添加到另一个范围中
- 如何将更多文件夹添加到c++include路径
- 如何将元素添加到数组的线程安全函数?
- QT通过C++添加映射QML项目
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- 如何使用重载的相等(==)运算符向测试用例添加描述
- 为什么Mat类的两个对象可以在不重载运算符+的情况下添加
- 如何防止clang格式在流运算符调用之间添加换行符<<
- 只能向C++添加一定数量的字符
- Qt和C++:将QLineEdit添加到QTabWidget中
- 将QIcon添加到QTableView单元格
- QT-仅用密钥填充QMAP,然后添加每个键的值
- 从QMap获取最后插入/添加的项目
- 使用迭代器和擦除/添加项遍历QMap是否正确
- 无法将项目添加到 QMap