QQuickWidget中的组件与QQuickView中的组件行为不同

问题描述 投票:0回答:1

当用户在使用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"
    }
    }
}
c++ qt qml
1个回答
2
投票

我遇到了同样的问题,当我在ComboBox中点击窗口的其他地方时,我的PopupQQuickWidget不会关闭。

ComboBox表现得像我在qml WindowQQuickView中预期的那样。

我找到的解决方案是定制ComboBoxPopup并设置modalclosePolicy属性如下:

ComboBox {
    popup.modal: true
    popup.closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside
    model: [ "apples", "oranges", "pears" ]
}

那里的模型,因为你需要一个模型来看到Popup在行动。

© www.soinside.com 2019 - 2024. All rights reserved.