我在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]);
}