如何在QML端获取C++后端传递的QStringList类型属性的长度
问题原因
从C侧以Q_PROPERTY暴露的QStringList类型传递到QML环境后,不会保留C类的size()成员方法,QML对该类型的访问遵循JavaScript类数组的规则。ComboBox的model原生适配QStringList类型,所以可以直接赋值正常使用。
解决方案
直接读取length属性即可获取长度,将报错行修改为:
if(test.availableCameras.length === 1)
如果遇到Qt旧版本兼容问题,可以先转为标准JavaScript数组再读取长度:
const cameraArr = Array.from(test.availableCameras) if(cameraArr.length === 1)
内容的提问来源于stack exchange,提问作者Matteo Barbieri
相关产品推荐
相关产品推荐

