c++ - Qt 在特定代码之后没有继续运行指令
问题描述
我正在尝试QInputDialog
使用 for 循环将值放入数组中,但在达到最大值后它不会在循环后继续运行代码,直到我退出我的程序
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 QInputDialog::getInt(...)
://doc.qt.io/qt-5/qinputdialog.html#getInt将创建一个模态窗口。模态窗口基本上会阻塞主窗口(您的MainWindow
类),直到用户关闭它。
这是有意的,这样您就不会继续编写代码,直到准备好结果。如果您希望在显示对话框后执行某些操作,但尚未关闭,您可能应该使用不同的方法(可能派生出您自己的方法QDialog
)。
推荐阅读
- reactjs - 在新组件中传递点击事件的道具
- c# - 使用进度条调用 WPF 调度程序
- c# - C# 在 switch 或其他方式中更改变量类型以移动它
- jakarta-ee - Java EE - 学习资料
- ffmpeg - ffmpeg 创建一个 mp4 流,导致 Firefox 出错
- sql - 如何编写这个 SQL 查询,我想以最简单的方式基于对多个值的排序来提取一个子集?
- asp.net - 如何动态地将链接按钮控件添加到表格单元格
- oracle - Oracle 修改 sys refcursor 并在 PL/SQL 中返回修改后的游标
- c# - Json.Net 将 1 反序列化为 long 类型的对象
- python - 如何为其他 numpy 数组创建一个 numpy 视图数组