QQuickWidget中的组件与QQuickView中的组件行为不同
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QQuickWidget中的组件与QQuickView中的组件行为不同相关的知识,希望对你有一定的参考价值。
当用户在使用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"
}
}
}
答案
我遇到了同样的问题,当我在ComboBox
中点击窗口的其他地方时,我的Popup
的QQuickWidget
不会关闭。
ComboBox
表现得像我在qml Window
或QQuickView
中预期的那样。
我找到的解决方案是定制ComboBox
的Popup
并设置modal
和closePolicy
属性如下:
ComboBox {
popup.modal: true
popup.closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside
model: [ "apples", "oranges", "pears" ]
}
那里的模型,因为你需要一个模型来看到Popup
在行动。
以上是关于QQuickWidget中的组件与QQuickView中的组件行为不同的主要内容,如果未能解决你的问题,请参考以下文章
QQuickWidget 中的 MultiPointTouchArea 行为