使用 QFileDialog 后 QMainWindow 进入后台

QMainWindow goes background after using QFileDialog

我有一个 Qt 应用程序,它在单击按钮后加载一些文件。我正在使用 QFileDialog 打开文件。每次我关闭文件对话框时,主应用程序 window (QMainWindow) 都落后于所有其他打开的 windows(互联网浏览器、资源管理器等)。这是标准行为吗?有什么办法可以防止这种情况发生吗?我试过了

    // set always on top window
    Qt::WindowFlags flags = this->windowFlags();
    this->setWindowFlags(flags | Qt::WindowStaysOnTopHint);

但它导致文件对话框也位于主要 window.

后面

已编辑: 这是调用文件对话框的代码片段(调用它的方法是我的 class LoadData 的静态方法):

void MainWindow::on_buttonIP_clicked()
{
     loaded = LoadData::OpenFiles(IPFiles);
}

bool LoadData::openFiles(QStringList &fileNames)
{
    // open files dialog
    fileNames = QFileDialog::getOpenFileNames(0,
          tr("Open files"), "", "Text Files (*.txt *.dat *.points)");

    if (fileNames.isEmpty())
    {
        return false;
    }

    return true;
}

QFileDialog::getOpenFileNames 的第一个参数不能是 nullptr。设置成你的主window,一切就OK了。