使用焦点和popup.visible时,ComboBox上的奇怪行为

时间:2017-05-18 12:07:51

标签: qt focus qml qtquick2 qtquickcontrols2

当我尝试执行此代码时,我有一种奇怪的行为让我烦恼:

import QtQuick 2.7
import QtQuick.Controls 2.0

ApplicationWindow {
    id: window
    visible: true
    width: 640
    height: 480

    Rectangle {
        color: "green"
        width: parent.width/2
        height: parent.height
        anchors.right : parent.right


        ComboBox {
            id:combo
            popup.visible: combo.activeFocus
            model: [ "Banana", "Apple", "Coconut" ]
        }

    }
    CheckBox {
        id:check
    }
}

如果我点击CheckBox然后点击ComboBoxComboBox.popup 将在1毫秒内显示,然后消失。 我不明白为什么,因为activeFocus = true

你知道为什么吗?

1 个答案:

答案 0 :(得分:1)

如果您遵循导致它的事件链,则会出现此行为:

  1. 您点击了ComboBox
  2. ComboBox获得activeFocus
  3. ComboBox.popup变为visible
  4. 处理点击,切换可见性 - > ComboBox becoms隐身。
  5. 删除行

    popup.visible: combo.activeFocus
    

    你没事。

    通过open()close()来控制可见性。