qml中ComboBox组件onCurrentIndexChanged与onActivated的使用

在qml页面中使用ComboBox时,一般会有以下用法:

json 复制代码
ComboBox{
	id: box
	model: yourBindingModel
	onCurrentIndexChanged: {   
		//业务代码
	}	
}  

通常不会有什么问题,切换下拉列表时触发onCurrentIndexChanged,然后执行业务代码。

但是,如果有

json 复制代码
currentIndex: yourBindingIndex

即给combox组件的currentIndex进行了数据绑定,那么在初始化UI时,如果yourBindingIndex有有效值,则会触发onCurrentIndexChanged,此时并不是我们手动操作下拉列表触发的,这种情况一般是预期以外的,onCurrentIndexChanged内业务代码的执行也会造成程序异常。那如何避免呢?

使用onActivated

json 复制代码
onActivated: {}

看官方文档描述:

This signal is similar to currentIndex changed, but will only be emitted if the combo box index was changed by the user, not when set programmatically.

index is the activated model index, or -1 if a new string is accepted.

The corresponding handler is onActivated.

相关推荐
若水晴空初如梦4 小时前
QT聊天项目DAY10
qt·bootstrap·mybatis
cs82198483110 小时前
QT 解决msvc fatal error C1060: 编译器的堆空间不足
开发语言·qt
m0_5557629013 小时前
手势、鼠标滑动实现界面切换
c++·qt
bbqz00715 小时前
Qml Console
c++·qt·qml
cykaw25901 天前
QT 文件选择对话框 QFileDialog
开发语言·qt
freshman_y1 天前
Qt实现车载多媒体项目,包含天气、音乐、视频、地图、五子棋功能模块,免费下载源文件!
开发语言·qt
www_pp_1 天前
# 创建一个功能完备的计算器应用:使用PyQt5和Python
开发语言·python·qt
神仙别闹1 天前
基于QT(C++)实现(图形界面)校园导览系统
数据库·c++·qt
feiyangqingyun1 天前
Qt/C++开发监控GB28181系统/警情订阅/目录订阅/报警事件上报/通道上下线
c++·qt·gb28181
繁星蓝雨1 天前
Qt中数据结构使用自定义类————附带详细示例
数据结构·c++·qt·qmap·qset