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

标签 c++ qt

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

相关文章:

c++ - GCC 警告初始化顺序与声明顺序不匹配

c++ - 检查 UTF-8 字符串在 Qt 中是否有效

c++ - Qt:如何将两个小部件(比如 QPushButton)添加到状态栏,一个在左侧,另一个在右侧?

qt - QML 中的自定义附加属性

c++ - 分别为数据成员和成员函数专门化模板

c++ - 如何使用 Code::Blocks 链接到库?

c++ - 什么时候在复杂表达式中评估后缀增量运算符?

c++ - 如何在 C++ 中删除与 typeid( ).name( ) 关联的数字?

c++ - 如何初始化 QGraphicsItem 的二维数组

c++ - QWidget::mousePressEvent() 同时在两个小部件上