Qt6 QML信号参数注入弃用警告 如何修改代码消除提示
问题原因
Qt 6 废弃了信号处理函数自动注入信号参数的特性:Qt 5 版本中,信号携带的参数可以直接在对应的处理函数中无需声明直接使用,Qt 6 要求必须在处理函数中显式声明形参才能调用,否则就会触发该警告。
修复方法
仅需要修改 ListView 中 onItemSelected 信号处理函数的定义,显式声明 vmIndex 形参即可,两种可行的写法如下:
写法1:普通函数声明
ListView { id: studySelectListView anchors.fill: parent model: studySelectList delegate: VMStudyEntry { width: studySelectBackground.width height: studySelectBackground.height/4 onItemSelected: function(vmIndex) { selectionChanged(vmIndex,true); } } }
写法2:箭头函数(更简洁)
onItemSelected: (vmIndex) => selectionChanged(vmIndex,true)
如果你的信号携带多个参数,按信号定义的参数顺序依次在处理函数中声明形参即可正常使用,形参名可以自定义,和信号参数名保持一致即可提升代码可读性。
内容的提问来源于stack exchange,提问作者aarelovich
相关产品推荐
相关产品推荐

