On 27 Sep 2016, at 17:40, Nuno Santos 
<nunosan...@imaginando.pt<mailto:nunosan...@imaginando.pt>> wrote:

Hi,

I’m customising a QtQuick.Control 2.0 ComboBox and I’m facing myself with the 
following problem:

I don’t know how to close the ComboBox when using a another element than 
ItemDelegate. The customisation page says the following:

http://doc.qt.io/qt-5/qtquickcontrols2-customize.html#customizing-combobox

delegate: ItemDelegate {
    width: control.width
    text: modelData
    font.weight: control.currentIndex === index ? Font.DemiBold : Font.Normal
    highlighted: control.highlightedIndex == index
}

But I need to use a rectangle in order to have a different background color of 
the combobox drop down, so I’m doing the following:

delegate: Rectangle {
    width: control.width
    height: label.paintedHeight+10
    color: controller.settings.baseColor

    Text {
        id: label
        anchors.fill: parent
        anchors.margins: 10
        text: modelData
        font.family: opensans.name
        font.pixelSize: 14
        verticalAlignment: Text.AlignVCenter
        color: 
control.highlightedIndex==index?controller.settings.highlightColor:"white"
    }

    MouseArea {
        anchors.fill: parent
        onClicked: {
            control.currentIndex=index
        }
    }
}

But now, how do I close the combo box? Any ideas?


Hi,

The most straight-forward way is to add “control.popup.close()” in the existing 
MouseArea onClicked handler. Alternatively, switch to AbstractButton and kill 
the MouseArea altogether:


        delegate: AbstractButton {

            width: control.width

            height: label.paintedHeight+10

            padding: 10

            background: Rectangle {

                color: controller.settings.baseColor

            }

            contentItem: Text {

                id: label

                // ...

            }

        }


--
J-P Nurmi

_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to