【问题描述】
自定义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;