我正在尝试使用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循环之后的代码根本没有运行,直到我停止运行。
答案 0 :(得分:1)
根据Qt的文档:https://doc.qt.io/qt-5/qinputdialog.html#getInt QInputDialog::getInt(...)
将创建一个模态窗口。模态窗口基本上阻止主窗口(您的MainWindow
类),直到用户关闭它。
这是故意的,因此在结果准备好之前,您不会继续使用代码。如果您希望在显示对话框后执行某些操作但尚未关闭,则应该使用不同的方法(可能派生自己的QDialog
)。