【发布时间】:2018-11-05 17:46:38
【问题描述】:
我创建了一个自定义ComboBox,它在页脚中使用ListView 和TextField,用于向ComboBox 动态添加选项。
问题是,一旦弹出窗口失去焦点(所以当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,我编辑了条目。
标签: qt combobox popup qml qcombobox