我正在尝试使用QCache类,但是缺少方法插入...
SqlTableModel.h
class SqlTableModel : public QSqlTableModel
{
Q_OBJECT
public:
Q_INVOKABLE QVariant getValue(QJSValue searchColumn, QJSValue searchValue, QJSValue returnColumn) const;
private:
QCache <QString, QString> m_cache;
};
sql.cpp ....
QVariant SqlTableModel::getValue(QJSValue columnName, QJSValue columnKey, QJSValue returnColumnName) const
{
QString cache_key;
cache_key = columnName.toString() + "_" + columnKey.toString() + "_" + returnColumnName.toString();
return m_cache.insert //?????????? auto complet=te give me nothing!
}
尝试构建后:
//error: 'this' argument to member function 'insert' has type 'const QCache<QString, QString>', but function is not marked const
//error: no matching function for call to ‘QCache<QString, QString>::insert(const char [10], QString&) const’
// return m_cache.insert("123123123", cache_key);
我的问题在哪里?
答案 0 :(得分:1)
您的问题是getValue
是const
函数,而insert
中的QCache
不是const
。
您可以将函数设为非常量,也可以将m_cache
标记为mutable
,或者为插入和获取创建不同的函数。