在我的应用程序中,当BB 10设备处于离线状态时......我需要显示一个带有“确定”按钮的对话框。按下“确定”按钮应该终止APP !!!
SystemDialog *dialog;
dialog = new SystemDialog(tr("OK"), 0);
dialog->setTitle(tr("Alert"));
dialog->setBody(message);
dialog->setDismissAutomatically(true);.
connect(dialog, SIGNAL(finished(bb::system::SystemUiResult::Type)), dialog,
SLOT(deleteLater()));
dialog->show();
这里的deleteLater()是SystemSlot,它只是终止了Alert对话框而不是App!如何通过C ++代码在BB 10 Cascades中执行此操作?是否可以像这样覆盖deleteLater()SystemSlot,
// I replaced deleteLater() with SLOT(deleteLaters()) in above code and Added this Slot
void deleteLaters(){
bb::Application::exit(0);
}
然后它是Saying,没有这样的插槽deleteLaters()在bb :: System !!!
中找到请帮助,
Thankks !!!
答案 0 :(得分:0)
我想您只是想将SystemDialog
finished
信号连接到同一个对象的deleteLaters
广告位(不存在)。
尝试类似下一个代码的内容,如果您在班级中声明了您的广告位,则myObject
可能只是this
。
int connectResult = connect(dialog,
SIGNAL(finished(bb::system::SystemUiResult::Type)),
myObject,
SLOT(deleteLaters()));
Q_ASSERT(connectResult);
Q_RESULT(connectResult);
有关如何在班级中正确声明新广告位的详细信息,请参阅signals and slots文档。
注意:如果您确实需要关闭应用程序(不推荐),我相信您应该使用Application::instance->requestExit()
来正确执行此操作。如果您在关闭应用程序之前不需要执行任何其他操作,则可以直接将信号连接到requestExit()
插槽:
int connectResult = connect(dialog,
SIGNAL(finished(bb::system::SystemUiResult::Type)),
Application::instance,
SLOT(requestExit()));
Q_ASSERT(connectResult);
Q_RESULT(connectResult);