QFileDialog(QT 5.2.1 / mingw32)不允许我选择只读文件

时间:2014-04-21 22:17:03

标签: c++ windows qt

QT 5.2.1
Win7 64位

我正在使用QFileDialog来选择文件名

  • 在选择是否写入或读取文件时未知,因此QFileDialog :: getOpenFilename()和QFileDIalog :: getSaveFilename()对此不起作用。

出于某种原因,我无法选择标记为“只读”的文件。

如果我传递“DontUseNativeDialog”选项,那么我可以选择只读文件。然而,这并不理想。 AFAICT,我没有理由不能选择具有本机对话框的只读​​文件。这只是Windows实现中的一个错误,还是我错过了什么?

创建对话框的相关代码:

// create a generic FileDialog
QFileDialog dialog(NULL, tr("Select a disk image"));
dialog.setNameFilter(tr("Image Files (*.img *.IMG);;*.*"));
dialog.setFileMode(QFileDialog::AnyFile);  // should be default
dialog.setViewMode(QFileDialog::Detail);   // should be default
dialog.setAcceptMode(QFileDialog::AcceptOpen);  // should be default
dialog.setOption(QFileDialog::DontConfirmOverwrite, true);

QString fileLocation = NULL;
if (dialog.exec())
{
    // selectedFiles returns a QStringList - only expecting 1 filename,
    //      so use the zero'th element from that list
    fileLocation = (dialog.selectedFiles())[0];
}

完成测试项目粘贴在此处:
http://pastebin.com/TuM4AY4x

1 个答案:

答案 0 :(得分:0)

这是QT5.2.1中的一个错误。它应该固定在5.3 alpha https://bugreports.qt-project.org/browse/QTBUG-36886