关于Qml ComboBox的问题

Qml里面的ComboBox控件,触发onCurrentIndexChanged事件是比较正常的。

只不过,每次都要改变index才能触发事件,而在鼠标点击相同的index时,并不触发事件。

更让人崩溃的是,currentIndex不是立即生效。

这个时候,可以利用onPressChanged和onCurrentTextChanged事件,取代onCurrentIndexChanged事件,来完成鼠标点击相同index时,也能触发事件。

源码如下所示:

利用first标志位,可以消除第一次点击就触发onCurrentTextChanged事件。

利用pressedFlag标志位,可以捕捉到第二次点击,才执行doSomeThing()函数。

这个方法,有个限制,就是ComboBox里面的item不能重名。

QML ComboBox是一种用于在用户界面显示下拉列表的元素。它可以显示一组选项,并允许用户从选择一个或多个选项。你可以使用不同的数据模型来提供ComboBox的选项。 在QML ComboBox,你可以使用ListModel作为数据模型,通过添加ListElement来定义每个选项。每个ListElement可以包含一个或多个属性,例如text和value。text属性定义了显示在ComboBox的文本,而value属性则可以用于在选该选项时进行相应的操作。 另外,你还可以使用Component.onCompleted函数在ComboBox发出Component.completed()信号后执行一些操作。在这个函数,你可以通过currentIndex属性来设置ComboBox的默认选项。在给定的例子currentIndex被设置为"Coconut"的索引,以使"Coconut"成为默认选的选项。 综上所述,QML ComboBox是一种用于显示下拉列表的元素,可以通过ListModel提供选项。你可以使用Component.onCompleted函数来设置默认选项。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [QML ComboBox 演示](https://download.csdn.net/download/weixin_43810973/10889373)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [QML控件类型:ComboBox](https://blog.csdn.net/kenfan1647/article/details/122247488)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值