当使用QQuickWidget时,当用户点击窗口上的其他位置时,ToolTip和ComboBox组件不会关闭,但是当使用QQuickView时它们会关闭(ToolTip消失并且组合框的弹出窗口关闭)。
任何想法,如果需要将某些属性设置为QQuickWidget以与QQuickView具有相同的行为。
更新:
单击该按钮将隐藏组合框,但单击窗口上的任何其他位置将不会使组合框崩溃
main.cpp中
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QQuickWidget *view = new QQuickWidget;
view->setSource(QUrl("qrc:/resources/qml/test.qml"));
view->show();
return app.exec();
}
test.qml
import QtQuick 2.6
import QtQuick.Layouts 1.0
import QtQuick.Controls 2.0
Item {
id: test_combo
width: 400
height: 500
RowLayout{
ComboBox {
width: 200
model: [ "Banana", "Apple", "Coconut" ]
}
Button{
text: "test"
}
}
}
答案 0 :(得分:2)
我遇到了同样的问题,当ComboBox
的{{1}}点击窗口中的其他位置Popup
QQuickWidget
时,ComboBox
的{{1}}将无法关闭。
Window
的行为符合我在qml QQuickView
或ComboBox
中的预期。
我找到的解决方案是自定义Popup
的{{1}}并设置modal
和closePolicy
属性,如下所示:
ComboBox {
popup.modal: true
popup.closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside
model: [ "apples", "oranges", "pears" ]
}
那里的模型因为你需要一个模型才能看到行动中的Popup
。