2013-04-23 3 views
0

Я разрабатываю приложение BB10.Загрузите один пользовательский интерфейс поверх другого

У меня есть один файл QML, содержащий кнопку входа.

Когда пользователь нажимает на кнопку входа в систему, должен быть загружен еще один файл QML, содержащий текстовые поля имени пользователя и пароля, а также две кнопки отправки и отмены.

При нажатии кнопки отмены пользователь должен вернуться к исходной QML, содержащей кнопку входа.

Как я могу выполнить такой сценарий с использованием C++

+0

Не знаю. Мы пока не видели, что вы пробовали. –

ответ

0

Вы можете написать функцию по нажатию на кнопку входа, чтобы загрузить следующий файл QML.

ApplicationUI::ApplicationUI(bb::cascades::Application *app) : 
    QObject(app) { 
QmlDocument *loginQml = QmlDocument::create("asset:///Login.qml").parent(
     this); 
loginQml->setContextProperty("myApp", this); 
rootLogin = loginQml->createRootObject<AbstractPane>(); 
rootLogin->setParent(this); 

QmlDocument *secondPage = QmlDocument::create("asset:///SecondPage.qml").parent(
     this); 
secondPage->setContextProperty("myApp", this); 
rootSecond = secondPage->createRootObject<AbstractPane>(); 
rootSecond->setParent(this); 

callFirstQml(); 
} 
void ApplicationUI::callFirstQml() { 
Application::instance()->setScene(0); 
Application::instance()->setScene(rootLogin); 
} 

void ApplicationUI::callSecondQml() { 
Application::instance()->setScene(0); 
Application::instance()->setScene(rootSecond); 
} 

Угадайте, это сработает для вас. Обязательно напишите имена функций как QINVOKABLE в файле заголовка. Кроме того, rootLogin и rootSecond также должны быть записаны в заголовочном файле, так как это,

private: 
bb::cascades::TabbedPane *rootLogin; 
bb::cascades::TabbedPane *rootSecond; 
Смежные вопросы