import QtQuick.Controls 2.5
https://doc.qt.io/qt-5/videos/qtquickcontrols2-checkbox.mp4
CheckBox提供了一個可以切換(選中)或關(guān)閉(未選中)的選項按鈕荧恍。復(fù)選框通常用于從一組選項中選擇一個或多個選項拙寡。對于較大的選項集冈在,例如列表中的選項赐写,請考慮使用CheckDelegate
搪花。
CheckBox
從 AbstractButton
繼承其 API。例如赞赖,可以使用 checked
屬性設(shè)置復(fù)選框的狀態(tài)咱枉。
除了已檢查和未檢查的狀態(tài)之外,還有第三種狀態(tài):部分檢查球昨《辏可以使用 tristate
屬性啟用部分檢查狀態(tài)。該狀態(tài)表示無法確定常規(guī)檢查/未檢查狀態(tài);通常是因為影響復(fù)選框的其他狀態(tài)主慰。例如嚣州,當(dāng)在樹視圖中選擇了多個子節(jié)點時,此狀態(tài)很有用河哑。
Hierarchical checkbox groups can be managed with a non-exclusive ButtonGroup.
以下示例說明了如何將子項的組合檢查狀態(tài)綁定到父復(fù)選框的檢查狀態(tài):
Column {
ButtonGroup {
id: childGroup
exclusive: false
checkState: parentBox.checkState
}
CheckBox {
id: parentBox
text: qsTr("Parent")
checkState: childGroup.checkState
}
CheckBox {
checked: true
text: qsTr("Child 1")
leftPadding: indicator.width
ButtonGroup.group: childGroup
}
CheckBox {
text: qsTr("Child 2")
leftPadding: indicator.width
ButtonGroup.group: childGroup
}
}
屬性:
-
checkState
: enumeration
控制 復(fù)選框的狀態(tài) -
nextCheckState
:函數(shù)
此屬性包含一個回調(diào)函數(shù)避诽,只要用戶通過觸摸,鼠標(biāo)或鍵盤交互切換復(fù)選框璃谨,就會調(diào)用該函數(shù)來確定下一個檢查狀態(tài)沙庐。
默認(rèn)情況下,正常復(fù)選框在Qt.Unchecked
和Qt.Checked
狀態(tài)之間循環(huán)佳吞,并且三態(tài)復(fù)選框在Qt.Unchecked
拱雏,Qt.PartiallyChecked
和Qt.Checked
狀態(tài)之間循環(huán)。
nextCheckState
回調(diào)函數(shù)可以覆蓋默認(rèn)行為底扳。以下示例實現(xiàn)了一個三態(tài)復(fù)選框铸抑,該復(fù)選框可以根據(jù)外部條件呈現(xiàn)部分檢查狀態(tài),但在用戶交互式切換時從不循環(huán)到部分檢查狀態(tài)衷模。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 } }
This property was introduced in QtQuick.Controls 2.4 (Qt 5.11).
tristate
:(bool鹊汛。默認(rèn) false)表示復(fù)選框是否為三態(tài)蒲赂,默認(rèn)只有兩種狀態(tài)