需求背景:父级菜单中复选框与子级菜单联动展示,就是选中父级菜单的复选框,子级中的菜单的复选框全部被勾选中,在全部被勾选的复选框中选中一个取消勾选,父级的复选框变为待定状态。
需求分析:父级复选框有三种状态,选中,未选中和待定状态。
子级复选框只有两种状态,选中和未选中。
SCheckBoxType有两种类型:
一种是传统的复选框
一种是切换按钮
SCheckBoxState有三种状态
一种是未选中状态
一种是选中状态
一种是待定状态(待定状态可用于子级菜单未全选中时,父级SCheckBox状态为待定状态)
重点:
/** Called when the checked state has changed */
SLATE_EVENT( FOnCheckStateChanged, OnCheckStateChanged )
判断复选框状态是否变化有一个接口是OnCheckStateChanged,但是监控的只有两态。意思就是,只是监控选中和未选中两种状态的变化。即使此时点击子级复选框,父级的复选框状态从选中变为待定状态此时并未执行OnCheckStateChanged这个接口。