我创建了一个自定义的ComboBox
,它使用ListView
和页脚中的TextField
,用于动态地将选项添加到组合框
。
问题是,一旦弹出窗口失去焦点(因此当 TextField
接收焦点时),弹出窗口就会关闭。
我尝试强制弹出窗口保持打开状态,这确实有效,但随后阻止了 TextField
接收焦点(我猜是因为弹出窗口在 open()
后立即重新获得焦点被称为)。
ComboBox {
// ...
popup: Popup {
property bool forceOpen: false
onClosed: {
if(forceOpen)
open()
}
contentItem: ListView {
// ...
footer: TextField {
onPressed: forceOpen = true
}
}
}
}
我还尝试了 Popup
的 closePolicy
属性的所有值,但没有一个有帮助。
我正在使用Qt5.11。 forceOpen
解决方案曾经适用于 Qt 5.10,但现在不再适用。
最佳答案
如果您不接受 ComboBox
上的焦点,您的问题应该得到解决:
ComboBox {
focusPolicy: Qt.NoFocus
popup: Popup {
// ...
}
}
关于qt - 弹出窗口中带有 TextField 的 Qml 组合框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53159560/