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