带有部分的 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 { }
        }
    }
}

渲染成这样: