【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;
发布了206 篇原创文章 · 获赞 12 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_43248127/article/details/103796091
今日推荐