带有部分的 QtQuick2 ComboBox
QtQuick2 ComboBox with sections
我希望在 ComboBox 中具有与在 ListView (Example of sectioned ListView) 中相同的部分功能。
但是我在 ComboBox 中找不到这样的东西。
这可能吗?
为了在 ComboBox
中具有与 ListView
相同的部分功能,您只需在 ComboBox
中包含 ListView
。
您基本上可以自定义所有 Qt Quick Controls 2,这里是 ComboBox
的示例:https://doc.qt.io/qt-5/qtquickcontrols2-customize.html#customizing-combobox
在您的情况下,您需要自定义 popup
属性 以包含启用部分的 ListView
。
我写了一个例子:
ComboBox {
id: control
width: 200
model : ["Albert Dupontel","Antoine Griezmann","Peter Sagan","Rodney Mullen","Serena Williams"]
popup: Popup {
y: control.height
width: control.width
implicitHeight: Math.min(contentItem.implicitHeight, 300)
padding: 0
contentItem: ListView {
clip: true
implicitHeight: contentHeight
model: control.popup.visible ? control.delegateModel : null
currentIndex: control.highlightedIndex
section.property: "modelData"
section.criteria: ViewSection.FirstCharacter
section.delegate: Label {
x: 10
text: section
}
ScrollIndicator.vertical: ScrollIndicator { }
}
}
}
渲染成这样:
我希望在 ComboBox 中具有与在 ListView (Example of sectioned ListView) 中相同的部分功能。
但是我在 ComboBox 中找不到这样的东西。
这可能吗?
为了在 ComboBox
中具有与 ListView
相同的部分功能,您只需在 ComboBox
中包含 ListView
。
您基本上可以自定义所有 Qt Quick Controls 2,这里是 ComboBox
的示例:https://doc.qt.io/qt-5/qtquickcontrols2-customize.html#customizing-combobox
在您的情况下,您需要自定义 popup
属性 以包含启用部分的 ListView
。
我写了一个例子:
ComboBox {
id: control
width: 200
model : ["Albert Dupontel","Antoine Griezmann","Peter Sagan","Rodney Mullen","Serena Williams"]
popup: Popup {
y: control.height
width: control.width
implicitHeight: Math.min(contentItem.implicitHeight, 300)
padding: 0
contentItem: ListView {
clip: true
implicitHeight: contentHeight
model: control.popup.visible ? control.delegateModel : null
currentIndex: control.highlightedIndex
section.property: "modelData"
section.criteria: ViewSection.FirstCharacter
section.delegate: Label {
x: 10
text: section
}
ScrollIndicator.vertical: ScrollIndicator { }
}
}
}
渲染成这样: