2015-11-28 4 views
1

Я использую Qt 5.5.0 и Qt Creator 3.4.2 на Mac-книге, я хочу открыть второй qml при нажатии кнопки, я хочу разработать приложение, в котором приходят страницы входа и после входа в систему управления перейдите на следующую страницу.Как открыть вторую страницу qml при нажатии кнопки

Я пытаюсь предложить стек переполнение, но все же я сталкиваюсь с проблемой, чтобы открыть следующий 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?

В верхних ошибках случае приходят связанные с корнем, ReferenceError: корень не определен. Я дал идентификатор корня в файле test.qml.

Я также попробовал еще много примеров, чтобы решить задачу разработки функциональности. Пожалуйста, дайте краткую идею или код для разработки этой функции.

+0

http://stackoverflow.com/help/mcve – Mitch

ответ

2

Код ниже работает, обратите внимание на свойство status и функцию errorString() - они предоставят вам информацию при отладке (например, «файл не найден», компоненты не готовы и т. Д.).

Смотрите эти страницы для фона:
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(); 
    } 
0

Для этого типа интерфейса я бы использовать [StackView][1] компонент, который позволяет также анимации между переходами. Другим решением является использование компонента Loader.

Смежные вопросы