我在Qt 5.2中使用QFileDialog有一个小问题。当我打开对话框时,将显示该对话框,但不会将任何选定的文件发回给我。在下面的代码示例中,“ selectedFiles.at(0)”不提供任何内容。用户选择了正确的文件。这是我的代码还是Qt 5.2中的bug的问题?请帮助。

QFileDialog dialog;
    QStringList selectedFiles;

    dialog.setFileMode(QFileDialog::AnyFile);
    dialog.setNameFilter("Images (*.png *.jpg)");

    if (dialog.exec())
    {
        selectedFiles = dialog.selectedFiles();

        QImage image(selectedFiles.at(0));

        if(image.height() != 320 && image.width() != 240)
        {
            QMessageBox messageBox;
            messageBox.setText("File is not an image or the dimension is not 320x240");
            messageBox.exec();
        }

        else
        {
            ui->browseLine->setText(selectedFiles.at(0));
        }
    }

最佳答案

我没有在您的代码中看到任何错误,我对其进行了测试,并且一切正常。 ““ selectedFiles.at(0)'不提供任何内容”到底是什么意思? selectedFiles是空的(=不包含字符串)还是返回空字符串(=包含空字符串)?

无论如何;这是我通常的操作方式,也许尝试一下代码,看看它是否有效:

QStringList ls = QFileDialog::getOpenFileNames(this,
                                                   "Choose one or more files",
                                                   "",
                                                   "Audio-Files(*.wav)");
for(int i = 0; i < ls.size(); i++) {
    print(ls[i]);
}

07-27 23:11