我正在尝试使用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循环之后的代码才完全运行。

最佳答案

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

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

关于c++ - Qt在特定代码后没有继续运行说明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50552031/

10-10 07:24