我正在尝试使用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/