我试图在线程中显示对话框,它第一次显示。
如果我不使用isAlert
,它会显示 10-15 个对话框
这是我的代码:
bool isAlert;
void MyThread::ShowAlert(const QString &message)
{
if(!isAlert){
SystemDialog *myDialog = new SystemDialog(tr("OK"), 0);
myDialog->setTitle(tr("Alert"));
myDialog->setBody(message);
myDialog->setDismissAutomatically(true);
bool success = connect(myDialog,
SIGNAL(finished(bb::system::SystemUiResult::Type)),
this,
SLOT(onDialogFinished(bb::system::SystemUiResult::Type)));
if(success)
myDialog->show();
}
}
void MyThread::onDialogFinished(bb::system::SystemUiResult::Type){
isAlert=false;
}
MyThread::run(){
while(true){
...
if(...){
ShowAlert("Some text");
}
}
}
onDialogFinished 根本不起作用。
我在这里错过了什么吗?