Qt在特定代码后没有继续运行指令

时间:2018-05-27 12:15:03

标签: c++ qt

我正在尝试使用for循环将QInputDialog值放入数组中但在达到最大值后,它在循环后不会继续运行代码直到我退出程序

void MainWindow::on_pushButton_clicked()
{

    nb = ui->lineEdit->text().toInt();

    for(i=1;i<=nb;i++)
        {
           QInputDialog *ValDialog = new QInputDialog();
           b[i] =ValDialog->getInt(this,"Best Fit","Block No : " + i,1,0,100000,1);

        }
    std::cout << "aAA\n" + b[0];

    //UNRUNABBLE instructions
}

for循环之后的代码根本没有运行,直到我停止运行。

1 个答案:

答案 0 :(得分:1)

根据Qt的文档:https://doc.qt.io/qt-5/qinputdialog.html#getInt QInputDialog::getInt(...)将创建一个模态窗口。模态窗口基本上阻止主窗口(您的MainWindow类),直到用户关闭它。

这是故意的,因此在结果准备好之前,您不会继续使用代码。如果您希望在显示对话框后执行某些操作但尚未关闭,则应该使用不同的方法(可能派生自己的QDialog)。