Qcache 在 Qt 5.6 中不存储任何内容
Qcache doesn't store anything in Qt 5.6
我试图将QStrings存储在QCache中,但在关闭应用程序并再次运行后,缓存再次为空。
这是我的cpp代码:
QString fileName = QFileDialog::getOpenFileName(this, tr("Select a ply file"), homeDir, ".ply (*.ply)");
fileCache.insert(12, &fileName);
qDebug() << QString("# items in cache: ") + QString::number(fileCache.count());
ui->file_name_textEdit->insertPlainText(fileName);
我在标题中声明了缓存:
QCache<int, QString> fileCache;
我还尝试存储tmp值,因为在我收到这个内存泄漏错误之前:
free(): invalid size: 0x00007fffa0d96600 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x77725)[0x7fed3ebc1725]
/lib/x86_64-linux-gnu/libc.so.6(+0x7ff4a)[0x7fed3ebc9f4a]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7fed3ebcdabc]
/home/pendar/projects/paintsquad/build/pcl_visualizer(_ZN6QCacheIi7QStringE5clearEv+0x39)[0x473b0f]
/home/pendar/projects/paintsquad/build/pcl_visualizer(_ZN6QCacheIi7QStringED1Ev+0x19)[0x46f3d1]
/home/pendar/projects/paintsquad/build/pcl_visualizer(_ZN9PCLViewerD1Ev+0x6a)[0x468532]
/home/pendar/projects/paintsquad/build/pcl_visualizer(main+0x83)[0x463c79]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7fed3eb6a830]
/home/pendar/projects/paintsquad/build/pcl_visualizer(_start+0x29)[0x463b29]
所以我尝试了这个:
QString *tmp = new QString("hi");
fileCache.insert(12, tmp);
现在我没有得到任何错误,但缓存在重新启动时仍然是空的!
所以我需要使用QSettings,它提供了关闭和打开应用程序的持久性。
相关文章:
- 是否有任何内置的哈希图函数来处理 c++ 中的值输入?
- 是否有任何内置函数可以检查给定的两个数字在给定整数数组中的顺序是否相同?
- C++ 中是否有任何内置阶乘函数?
- 如何在C++变量中存储任何类型的函数
- 是否有任何内置函数可以告诉编译器分支是否可预测
- 为什么字符串变量"sum"不存储任何数据,程序不给出任何输出
- 存储任何值和特定类范围的值
- 我需要在C /C#中使用图形.我可以使用任何内置的C /C#库
- 是否有任何内置类可以处理C 中的大整数值
- 引用计数(不存储任何数据)
- Qcache 在 Qt 5.6 中不存储任何内容
- istringstream不在变量中存储任何内容
- c ++中是否有任何内置功能可以在计划的时间运行任务
- 是否有任何内置的 UTF 在 c++ 在窗口中
- Sqlite C++ Image to Blob 不会存储任何内容
- 在VC++2010中执行任何内置的ARRAY函数
- C++:如何在不使用任何内置函数的情况下将字符串转换为整数
- 是否有任何内置的CUDA函数允许CUDA内核向主机代码报告错误?
- 为什么我的数组不存储任何输入值?
- 使用任何缓冲区来存储任何数据,放置位置为new和memcpy