通常 Qt 的这些对象都是禁止值拷贝的。你可以看文档,Qt 的 GUI 类通常都没有复制构造函数,或者继承于 QObject 的类型都没有复制构造函数。
考虑一下复制一个窗口是什么含义?变成两个一模一样的窗口?复制一个 DirModel 通常也是不正确的需求。
实际上,无论你用 = 还是 & 都是错误的方式。尤其是 &,经常会引发野指针访问崩溃。建议你养成好习惯,这样子:
QFileSystemModel model;
QPointer<QFileSystemModel> ptr_model(&model);
QObject::connect(...., [ptr_model] {
if (ptr_model.isNull())
return;
ptr_model->reset();
});
使用 QPointer<> 或者 QSharedPointer<> 才是正确的 lambda 编程风格。
【 在 passbyer (扯淡王) 的大作中提到: 】
: 试了一下通过传递指针的方式是可以的。
: 但还是不明白为何通过传值的方式无法传递model对象。
--
FROM 183.253.23.*