如何使组合框在QML中默认打开
How to make ComboBox to be open by default in QML
我正在使用 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 中 Popup 组件的 id
,但出现相同的错误消息。
编辑 1(添加一个简单示例):
ApplicationWindow {
width: 200
height: 200
Item {
anchor.fill: parent
ComboBox {
popup.visible: true
model: ["First", "Second", "Third"]
}
}
更新到 Qt 5.7.1 解决了我的问题,感谢@BaCaRoZzo 的建议!
编辑 1:
作为旁注,我想补充一点,如果您收到消息 QML Popup: cannot find any window to open popup in.
,也可能是因为 Popup 组件找不到它的父级。例如,如果 Popup 是在 StateMachine 的 State 中创建的,就会发生这种情况。在这种情况下,您必须显式设置 Popup!
的 parent
属性
我正在使用 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 中 Popup 组件的 id
,但出现相同的错误消息。
编辑 1(添加一个简单示例):
ApplicationWindow {
width: 200
height: 200
Item {
anchor.fill: parent
ComboBox {
popup.visible: true
model: ["First", "Second", "Third"]
}
}
更新到 Qt 5.7.1 解决了我的问题,感谢@BaCaRoZzo 的建议!
编辑 1:
作为旁注,我想补充一点,如果您收到消息 QML Popup: cannot find any window to open popup in.
,也可能是因为 Popup 组件找不到它的父级。例如,如果 Popup 是在 StateMachine 的 State 中创建的,就会发生这种情况。在这种情况下,您必须显式设置 Popup!
parent
属性