QML ComboBox弹出问题

时间:2018-06-02 06:28:37

标签: qt qml qtquick2 qcombobox

我最近使用了很多组合框但是在特定ComboBox的弹出窗口中存在一个问题,我无法找到以下代码的确切问题:

import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 2.2

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    ComboBox{
        id:comboNum
        width:parent.width * 0.30
        height:parent.height * 0.15
        model: ["12","23","78","23","45","70"]
        currentIndex: 0

        popup: Popup{
            id:popup
            y: comboNum.height - 1
            width: comboNum.width
            height: comboNum.height * 2
            padding: 1

            contentItem: ListView {
                id: listview
                implicitHeight: popup.height
                clip: true
                model:comboNum.delegateModel
                currentIndex: comboNum.highlightedIndex
                interactive: true
                highlightMoveDuration: 0
                boundsBehavior: ListView.StopAtBounds

                ScrollBar.vertical:ScrollBar {}
            }
        }
    }
}

弹出窗口没有显示所有元素,我使用的是QT 5.9.1。

1 个答案:

答案 0 :(得分:1)

查看customisation docs,我可以看到它根据弹出窗口是否可见来有条件地设置模型。为您的代码片段执行相同的操作会使它对我有用:

model: popup.visible ? comboNum.delegateModel : null

然而,Default style implementation of ComboBox并没有这样做,所以我不确定为什么在你的情况下这是必要的。