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

Qt didn't continue run instructions after specific code

本文关键字:继续 运行 指令 代码 Qt      更新时间:2023-10-16

我正在尝试使用 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 << "aAAn" + b[0];
//UNRUNABBLE instructions
}

for 循环之后的代码在我停止运行之前根本没有运行。

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

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