Qml中CheckBox中信号重复传递问题

tech2023-10-03  95

常规处理方式

Qml提供了复选框控件-CheckBox,但控件的check状态值会在点击是自动变化(在0,1之间循环变化)。这样在onClicked()和onCheckChanged()信号中只能处理状态发生变化后的值。onPressed()会触发两次,即按下和松开。

特殊处理方式

在CheckBox状态前获取器状态,并自动修改控件点击后的状态,则需要使用onPressedChanged()信号,当该信号存在重复传递问题,即pressed=true(对应原始状态)和pressed=false(对应点击后的状态,与初始状态已发生变化),这样在该方式的使用中,会造成修改后的状态不是期望的bug。这就需要对该方式进行特殊处理:

pressed=true时,保存控件之前的状态。pressed=false时,修改控件为期望的状态。

 

最新回复(0)