如何在一个QML ComboBox索引变化时修改另一个ComboBox的内容?
完善后的QML代码实现需求
首先需要给第二个ComboBox指定唯一ID(比如targetComboBox),然后修改changeContent函数直接操作其model属性来切换选项内容。完整代码如下:
ComboBox { id: keyTypeComboBox anchors.centerIn: parent height: parent.height*0.8 width: parent.width*0.9 model: ["choice 1", "choice 2"] onCurrentIndexChanged: changeContent(); } // 第二个目标ComboBox,需提前定义并设置ID ComboBox { id: targetComboBox // 初始model设置为需求中的默认内容 model: ["20","30","60"] // 可根据布局需求补充anchors等属性 } function changeContent() { if(keyTypeComboBox.currentIndex == 0){ // 切换为仅包含"60"的选项 targetComboBox.model = ["60"] }else{ // 恢复初始选项内容 targetComboBox.model = ["20","30","60"] } }
关键说明
- 必须给第二个ComboBox设置唯一
id,才能在函数中精准引用并修改其内容 - 直接修改ComboBox的
model属性即可动态切换选项列表,QML会自动渲染更新后的内容 - 目标ComboBox的初始
model要提前设置为需求中的默认数组["20","30","60"]
内容的提问来源于stack exchange,提问作者Mohamed El Kayal
相关产品推荐
相关产品推荐

