Qt 三态复选框:拒绝用户将其设置为PartiallyChecked
我有三态复选框。我希望能够将其设置为Qt.PartiallyChecked,但我不希望用户能够将其设置为此状态 这是我现在使用的解决方法:Qt 三态复选框:拒绝用户将其设置为PartiallyChecked,qt,qml,qtquickcontrols2,Qt,Qml,Qtquickcontrols2,我有三态复选框。我希望能够将其设置为Qt.PartiallyChecked,但我不希望用户能够将其设置为此状态 这是我现在使用的解决方法: CheckBox { checkState: allCheckState tristate: true onClicked: { if (checkState == Qt.PartiallyChecked) checkState = Qt.Checked; } } 有
CheckBox
{
checkState: allCheckState
tristate: true
onClicked: {
if (checkState == Qt.PartiallyChecked)
checkState = Qt.Checked;
}
}
有更好的解决方案吗?您可以重写该函数。引用文件:
此属性包含一个回调函数,该函数被调用以确定
每当通过交互方式切换复选框时,下一个复选状态为
用户通过触摸、鼠标或键盘进行操作
默认情况下,正常复选框在Qt.Unchecked和Qt.Unchecked之间循环
选中状态,三状态复选框在
Qt.Unchecked、Qt.PartiallyChecked和Qt.Checked状态
nextCheckState回调函数可以覆盖默认值
行为。下面的示例实现了一个三态复选框
根据外部条件,可以显示部分选中状态
条件,但在
由用户交互切换
CheckBox {
tristate: true
checkState: allChildrenChecked ? Qt.Checked :
anyChildChecked ? Qt.PartiallyChecked : Qt.Unchecked
nextCheckState: function() {
if (checkState === Qt.Checked)
return Qt.Unchecked
else
return Qt.Checked
}
}
QtQuick.Controls 2.4(qt5.11)中引入了此QML属性