Qt: Как отобразить окно сообщений, когда вы находитесь внутри функции?

Я разрабатываю с использованием Qt Nokia SDK.

У меня проблемы с отображением кнопок MessageBox при попытке отобразить окно сообщения в функция. Если я попытаюсь отобразить его в главном окне, не будет проблем с отображением кнопок.

Главное окно состоит из QStackWidget, который содержит разные виджеты.

Вот код, который работает в главном окне:

QMessageBox msgBox;
msgBox.setText("Name");
msgBox.setInformativeText("Do you want to save your changes?");
msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard |
                          QMessageBox::Cancel);
msgBox.setDefaultButton(QMessageBox::Save);
int ret = msgBox.exec();

Здесь - это функция и код, которые я запускаю после получения ответа от веб-запроса (отображается окно сообщения, но не кнопки.

void MainWindow::RequestReceived()
{
    QMessageBox *msgBox = new QMessageBox(this);
    msgBox->setText("Test");
    msgBox->setWindowModality(Qt::NonModal);
    msgBox->setInformativeText("Do you want to save your changes?");
    msgBox->setStandardButtons(QMessageBox::Save | QMessageBox::Discard | 
                               QMessageBox::Cancel);
    msgBox->setDefaultButton(QMessageBox::Save);
    int ret = msgBox->exec();
}

Кто-нибудь знает, что происходит?

Заранее спасибо!

9
задан Andrew Prock 23 April 2014 в 00:29
поделиться