如何在QML中默认打开ComboBox

时间:2017-01-16 21:45:08

标签: qt qml qtquick2 qt5.7

我正在使用Qt 5.7和QtQuick.Controls 2.0。我想默认我的ComboBox是开放的。为此,我只需将popup.visible设置为true,但不幸的是我在控制台中收到以下错误:QML Popup: cannot find any window to open popup in.。单击我的ComboBox会打开并关闭它,没有任何错误消息。我甚至尝试Component.onCompleted: _popup.open(),其中_popup是我的ComboBox中弹出组件的id,但会出现相同的错误消息。

编辑1(添加一个简单的例子):

ApplicationWindow {
  width: 200
  height: 200

  Item {
    anchor.fill: parent

    ComboBox {
      popup.visible: true
      model: ["First", "Second", "Third"]
    }
  }

1 个答案:

答案 0 :(得分:1)

更新到Qt 5.7.1解决了我的问题,感谢@BaCaRoZzo的建议!

编辑1:

作为附注,我想补充一点,如果您收到消息QML Popup: cannot find any window to open popup in.,由于Popup组件无法找到它的父级,也会发生这种情况。例如,如果弹出窗口是在StateMachine的状态中创建的,则会发生这种情况。在这种情况下,您必须显式设置Popup的parent属性!