【qt】error: C2662: 不能将“this”指针从“const QMutex”转换为“QMutex &”

【问题描述】
自定义MyListModel继承自QAbstractListModel,想给内部存放数据的m_list加锁保护,在rowCount函数里调用m_mtx.lock()时,报错“error: C2662: “void QMutex::lock(void)”: 不能将“this”指针从“const QMutex”转换为“QMutex &” 转换丢失限定符”。

int MyListModel::rowCount(const QModelIndex &parent) const
{
     
    m_mtx.lock();
}

【问题定位】
const成员函数的this指针为const型指针导致。

【解决方案】
在互斥锁成员变量前加mutable限定符。

mutable QMutex       m_mtx;

你可能感兴趣的:(【qt】error: C2662: 不能将“this”指针从“const QMutex”转换为“QMutex &”)