如何在按钮单击时打开第二个qml页面

时间:2015-11-28 12:34:18

标签: qt qml

我在Mac-book上使用Qt 5.5.0和Qt Creator 3.4.2,我想在按钮点击时打开第二个qml,我想开发登录页面来的应用程序,登录控制后移到下一页。< / p>

我尝试堆栈溢出的建议,但是我仍然遇到按钮点击打开下一个qml的问题。

我试过

button2.onClicked:{
                        var component = Qt.createComponent("test.qml")
                        var window    = component.createObject(root)
                        window.show()
        }

How can I create a new window from within QML?

大写错误与root相关,ReferenceError:root未定义。我在test.qml文件中给了root id。

我还尝试了更多的例子来解决开发功能。请提供简要的想法或代码来开发此功能。

2 个答案:

答案 0 :(得分:2)

以下代码有效,请注意属性status和函数errorString() - 它们将为您提供调试信息(.eg“找不到文件”错误,组件未准备好等)

有关背景,请参阅以下页面:
Dynamic QML Object Creation from JavaScript
Component QML Type
Window QML Type

   function createWindows() {
     var component = Qt.createComponent("Child.qml");
     console.log("Component Status:", component.status, component.errorString());
     var window = component.createObject(root, {"x": 100, "y": 300});
     window.show();
    }

答案 1 :(得分:0)

对于这种类型的ui,我使用$("form input[type=submit]").click(function() { //console.log($(this).val()); if($(this).val()!=="ADD"){ $('form input[type=text]').each(function() { $(this).removeAttr("required"); }); } $("input[type=submit]", $(this).parents("form")).removeAttr("clicked"); $(this).attr("clicked", "true"); });组件,它也允许转换之间的动画。其他解决方案是使用Loader组件。