【问题标题】:QFileDialog (QT 5.2.1/mingw32) won't allow me to choose a read-only fileQFileDialog (QT 5.2.1/mingw32) 不允许我选择只读文件
【发布时间】:2014-04-21 22:17:02
【问题描述】:

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

【问题讨论】:

    标签: c++ windows qt


    【解决方案1】:

    这是 QT5.2.1 中的一个错误。据说它已在 5.3 alpha 中修复。
    https://bugreports.qt-project.org/browse/QTBUG-36886

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-25
      • 1970-01-01
      • 2017-10-26
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      相关资源
      最近更新 更多